2017-03-10 4 views
1

나는 "id"와 "event"를 입력 받아 데이터베이스에 저장하고, 다른 하나는 "id", "event"및 "thirdparty"를 입력 받아 데이터베이스에 저장하는 두 가지 작업을 수행합니다. 과정은 비슷하지만 약간 다릅니다. "thirdparty"를 사용하면 데이터베이스와 관련된 "이벤트"관련 "제 3 자"를 확인할 필요가 없습니다.두 개의 유사한 작업을 두 개의 경로가있는 두 개의 별도 메서드에 넣거나 하나의 프레임 워크에 병합해야합니까?

질문 중 성능이 가장 좋은 것은 무엇입니까? 스위칭 로직이있는 하나의 경로? 또는 두 개의 별도 동작이있는 두 개의 경로?

저는 scala play 2.5.x와 cassandra 데이터베이스를 사용하고 있습니다.

더 일반적으로 더 많은 경로를 갖는 것이 더 좋습니다. 또는 더 적은 경로를 사용하지만 더 복잡한 로직을 사용합니까?

답변

0

코드가 동일하면 (스위치는 제외) 무시해도 좋습니다. 성능은 같습니다. 코드 중복을 피하고 일관된 끝점 목록을 갖도록 코드 및 끝점을 구조화하는 방법에 대한 문제입니다.

정말 응용 프로그램마다 다르므로 하나 또는 다른 것을 제안하기가 어렵습니다. 둘 다 응용 프로그램의 구조에 따라 정확합니다. 성능면에서


각 요청이 독립적이기 때문에, 유일한 차이점은 타사 호출해야하는지 여부를 확인하기 위해 if 될 것이라고 기본적으로 동일합니다.

모범 사례와 관련하여 선택적 인수 및 전환 논리가있는 다른 경로가있는 경우 코드에서 일관성을 유지하기 위해 해당 경로를 선택하는 것이 좋습니다. 그렇지 않다면, 코드가 너무 복잡해지지 않는 한, 함께 이해할 수있는 경로를 그룹화해야합니다. 코드가 복잡해지면 어쨌든 함께 그룹화해서는 안된다는 신호입니다.

이 경우 내 직감은 제 3 자에게 연락하는 것이 간단한 추가 단계처럼 보이기 때문에 경로 만 사용하는 것이지만 실제로 결정하는 것은 귀하에게 달려 있습니다. 두 옵션 모두 정확합니다.

+0

성능 측면에서 전혀 차이가 있는지 궁금했습니다. 더 많은 경로를 갖는 것이 더 나은 방법입니까? 또는 더 적은 경로를 사용하지만 더 복잡한 로직을 사용합니까? – yang

+0

@yang 코드가 복잡해지면 엔드 포인트가 너무 많은 일을하고 있으며 리팩토링해야한다는 신호가됩니다. 이 경우 간단한 단계로 보입니다. 더 많은 통찰력으로 답변을 업데이트했습니다. – nmat

관련 문제