현재 IETracking 이벤트를 처리하는 라이브러리를 작성 중입니다. 필자는 라이브러리의 전체 디자인을 여러 번 수정하여 전체 라이브러리에 전반적인 사용법 테마를 부여하면서 내가 좋아하는 디자인을 마침내 제시했습니다.코드 중복과 코드베이스 초과 생성
이 방법으로 라이브러리를 구현했지만 곧 두 개의 클래스에서 코드를 복제해야한다는 것을 알았습니다. 나는이 수업이 기본적으로 똑같은 일을했기 때문에 많은 생각을하지는 않았지만, 다양한 종류의 아이 트렉킹 이벤트에 대해서.
이제 릴리스 버전의 버전에 가까워졌습니다. 일부 클래스에는 중복 코드가 80 % 이상 포함되어 있기 때문에 제네릭을 사용하여 일반화 할 수있는 몇 가지 클래스가 있다는 것을 알고 있습니다.
하지만 일반적인 일 현재 코드베이스를 리팩토링 할 때 내가 직면 할 것으로보고하고 몇 가지 문제가있다 :
- 나는 유도의 모든 감각을 만들 수있는 인터페이스 메소드를 추가해야합니다은 클래스에 대한 설명은 아니지만 대부분의 스펙에는 포함되지 않았습니다.
- 사용자에게 도움이되지 않는 매우 일반적인 문서로 특정 유형 (모범 사례, 공통점 등)에 대한 대부분의 문서를 대체해야합니다.
- 라이브러리의 절반은 많이 중첩 된 제네릭을 사용하지만 나머지는 r half는 기본적으로 똑같은 상태를 유지하면서 내가 생각했던 가장 중요한 디자인의 긍정적 인 학습/사용 효과를 줄였습니다.
- 라이브러리의 일반적인 부분은 거의 모든 용도와 함께 사용할 수 있지만 실제로는 눈 감아주기 목적으로 유용하지는 않습니다 당신은 어떻게 생각하십니까 현재
유사한 상태로 코드베이스를 되돌릴 필요
현재 코드베이스 중 몇 퍼센트가 일반으로 리팩토링 될 수있는 지점과 중복되는 것으로 간주 될 것입니까? 단지 몇 퍼센트 만이라도 나중에 어쨌든 전문화되어야한다고 생각한다면 나는 그대로있는 것으로 남겨 두겠다. –
중복 된 부분이있는 4 개의 클래스가 있습니다. 이 클래스는 관련있는 공통 인터페이스로 추상화 할 수없는 여러 유형의 eytracking 이벤트를 처리합니다. 그들이 공통적으로 가지고있는 유일한 점은 연대순으로 주문할 수 있다는 것입니다.이 클래스는 이미 일반적인 비교 가능한 인터페이스와 컬렉션 클래스를 포함하고 있습니다. Percentage-wise 나는 어쩌면 30 %라고 말할 것입니다. –
코드베이스가 실제로 그렇게 크지는 않다는 것을 알았습니다. 중소 규모의 클래스 4 개가 더 나은 메트릭이 될 수 있습니다. –