2009-06-02 3 views
1

저는 계약자이며 프로젝트 마감일에 기능을 구현하기 위해 종종 프로젝트에 참여합니다. 종종 내 페이스가 기본 디자인의 페이스보다 빠르지 만. 그래서 저는 종종 최종 디자인을 기다리는 동안 예비 방식으로 작업을 수행하는 함수/메소드를 생성해야하는 바람에 있습니다.설계가 구현으로 따라 잡을 때 걸레 회피하기

사례 현재 현재 데이터베이스 디자인에 너무 복잡하기 때문에 (필자는 MySQL의 "필드"기능을 사용한다고 생각하지 않는다는 점에서 일부 레코드의 기본 정렬을 수행하는 임무를 맡았습니다 Java/Hibernate는 그것을 지원한다). 그래서 필자는 필요한 데이터베이스 디자인 작업이 완료되면 당분간 레코드를 애플리케이션 레벨에서 정렬하여 다시 구현하거나 완전히 피할 수있는 기능을 만들었습니다.

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

나는 이것에 관해 어떻게 염려해야 하는가? 이 문제를 완화하려면 어떻게해야합니까? 일반적으로 매우 단기 계약자, 나는 일반적으로 시간이나 권위가 없다 - "전략 패턴"과 같은 것을 구현할 수 있는데, 이는 내가 전반적인 디자인을 실제로 책임지고 있다면 내 성향 일 수있다.

+0

나는이를 보류 상태로 두는 것에 동의하지 않지만, 투표가 8 살이라고 생각할 때 투표는 완전히 불필요한 것으로 보이며 그 당시 사이트는 완전히 다릅니다. –

답변

2

코드베이스가 진화하면 일정량의 cruft가 예상됩니다. 사용하지 않는 코드를 삭제하는 방식을 체계적으로하려고 할 때에도이를 모두 제거하기는 어렵습니다. 항상 삭제할 수있는 시스템에서 사용되지 않는 코드를 찾는 것은 만족 스럽습니다.

강한 타이핑은 약한 타이핑보다 훨씬 좋은 방식으로 유형과 용도를 추적 할 수 있으므로 친구가 여기 있습니다. 따라서 문자열 데이터 형식에서 벗어나면 정리 작업이 더 어려워집니다.

코드 캡션 도구가 동시에 실행되는 테스트 시스템을 통해 프로덕션 시스템에서 24 시간 분량의 트래픽을 재생할 수 있다면 정말 멋진 트릭입니다. 그것은 보통 죽은 코드의 금광이지만, 다른 우선 순위들 중에서 그러한 많은 양의 정리를 다루는 시간을 찾기가 어려울 수 있습니다.)