일반적인 본능은 코드에 표시되는 코드 중복을 제거하는 것입니다. 그러나 나는 복제가 환상적 인 상황에서 나 자신을 발견했다 .
상황을 더 자세히 설명하려면 웹 응용 프로그램을 개발 중이며 대부분의보기는 기본적으로 동일합니다. 사용자가 스크롤하고 선택할 수있는 항목 목록, 선택한 항목이 포함 된 두 번째 목록 및 "저장" "버튼을 눌러 새 목록을 저장하십시오.
문제가 쉬운 것 같았습니다. 그러나 각각의 모든보기에는 고유 한 단점이 있습니다. 때로는 무언가를 다시 계산해야하고 때로는 추가 데이터를 저장해야합니다. 이는 주 논리 코드에 콜백 후크를 삽입하여 해결했습니다.
있다 이렇게 많은 나는 기본적으로 모든 기능을 콜백을 제공 할 필요가 있기 때문에, 적게 유지 관리되고 뷰 사이의 분 차이, 그리고 주요 논리는 콜백 호출의 거대한 순서처럼 보이기 시작한다. 결국 모든보기에는 자체 콜백이 실행되는 자체 코드가 있기 때문에 시간이나 코드를 저장하지 않습니다.
문제는 다음과 같습니다.
- 차이점은 아주 미세 하여 모든 뷰에서 코드가 거의 똑같이 보입니다 .
- 거기에 너무 많은 당신이 코드에, 세부 사항을 보면 그 차이입니다 조금 비슷하지
이 상황을 어떻게 처리해야합니까?
콜백 콜로 구성된 핵심 로직이 좋은 솔루션입니까?
아니면 코드를 복제하고 콜백 기반 코드의 복잡성을 제거해야합니까?