문제

저는 계약자이며 종종 프로젝트를 시작하여 마감일 동안 기능을 구현합니다. 종종 내 페이스는 기본 디자인보다 빨라집니다. 그래서 나는 종종 최종 디자인을 기다리는 동안 예비 방식으로 작업을 수행하기 위해 기능/방법을 만들어야합니다.

예를 들어, 현재, 나는 현재 데이터베이스 설계에 너무 복잡한 방식으로 일부 레코드의 기본 종류를 수행하는 임무를 맡고있었습니다 (실제로는 Java/Hibernate Supports를 생각하지 않는 것을 제외하고는 MySQL의 "필드"기능을 사용합니다. 그것). 따라서 필요한 데이터베이스 설계 작업이 완료되면 레코드가 응용 프로그램 수준에서 정렬 될 수있는 기능을 만들었습니다.

내 관심사는 일단 필요한 모든 디자인이 완료되면 (일반적으로 또는 특히 위에서 설명한 시나리오와 관련하여) 불필요한 기능/방법의 흔적을 남기고 싶지 않습니다. 때때로 그들은 디자인에 가치를 더할 수 있지만 때로는 결국 불필요한 간접 층이 될 수 있습니다.

내가 이것에 대해 얼마나 걱정해야합니까? 이것을 완화하기 위해 무엇을 할 수 있습니까? 일반적으로 매우 단기 계약자, 나는 보통 "전략 패턴"과 같은 것을 구현할 시간이나 권한이 없으며, 실제로 전반적인 설계에 책임이 있다면 내 성향 일 수 있습니다.

도움이 되었습니까?

해결책

코드 기반이 발전함에 따라 어느 정도의 Cruft가 예상 될 것이라고 생각합니다. 오래된 미사용 코드를 삭제하는 것에 대해 체계적으로 시도하더라도 모든 것을 제거하기가 어렵습니다. 내 시스템에서 사용하지 않은 코드를 찾는 것은 항상 만족 스럽습니다.

강력한 타이핑은 친구입니다. 약한 타이핑보다 훨씬 더 나은 방식으로 유형과 사용을 추적 할 수 있기 때문입니다. 따라서 이러한 문자열 데이터 유형에서 멀리 떨어져 있으면 청소가 더 어려워집니다.

정말 깔끔한 트릭은 동시에 코드 커버리지 도구를 사용하여 테스트 시스템을 통해 생산 시스템에서 24 시간 분량의 트래픽을 재생할 수 있는지 여부입니다. 그것은 일반적으로 골드 마인의 죽은 코드이지만 다른 우선 순위들 사이에서 많은 양의 정리를 처리 할 시간을 찾기가 어려울 수 있습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top