나는 이것을 정확하게 조사하는 회사에서 일합니다. 다음은 기술 부채를 해결할 때 권장되는 3 가지 실행 가능한 지표입니다. "어떻게"와 "언제"를 추적하는 방법에 대한 자세한 내용은 기술 문서 이해 및 해결을 위한 요약 문서 3을 정리했습니다 .
당신의 생각은 무엇입니까? 모든 질문에 답하고 기꺼이 귀하의 의견을 듣고 싶습니다 :).
결함 및 원치 않는 기술 부채 방지를위한 소유권
소유권은 엔지니어링 건강의 주요 지표입니다.
많은 사람들로부터 기부금을받는 코드베이스의 일부는 시간이 지남에 따라 뭉개지지만, 적은 사람들로부터 기부금을받는 사람들은 더 나은 상태에있는 경향이 있습니다. 코드베이스의 일부에 대해 잘 알고있는 엄격한 그룹에서 높은 표준을 유지하는 것이 더 쉽습니다.
이것은 약간의 예측력을 제공합니다. 코드베이스의 약한 소유 부분은 시간이 지남에 따라 부채를 축적하고 작업하기가 점점 어려워 질 수 있습니다. 특히, 불완전한 정보의 부수적 인 영향과 코드 품질의 희석 된 소유권으로 인해 의도 치 않게 부채가 발생할 가능성이 높습니다 .
이것은 공통 의 비극 과 다소 유사합니다 .
아키텍처 개선을위한 응집력
응집력은 잘 정의 된 구성 요소의 후행 지표입니다.
응집력과 그 대응 물인 커플 링은 소프트웨어 설계시 중점을 두어야 할 중요한 개념으로 오랫동안 인식되어 왔습니다.
코드는 대부분의 요소가 함께 속해있을 때 응집력이 높다고합니다. 높은 응집력은 일반적으로 유지 보수성, 재사용 성 및 견고성과 관련되어 있기 때문에 선호됩니다. 높은 응집력과 느슨한 결합은 서로 밀접한 관계가 있습니다.
재사용 성이 높고 유지 보수가 용이 한 코드와 관련하여 높은 응집력은 코드베이스의 특정 부분을 수정하는 데 참여해야하는 사람들의 수를 최소화하여 생산성을 향상시킵니다.
문제 영역을 식별하기 위해 이탈
이탈 (반복 활동)은 성장하는 시스템에서 리팩토링하기에 익은 영역을 식별하고 순위를 매기는 데 도움이됩니다.
시스템이 성장함에 따라 개발자가 아키텍처를 이해하기가 더 어려워집니다. 개발자가 새로운 기능을 제공하기 위해 코드베이스의 많은 부분을 수정해야하는 경우 버그로 이어지는 부작용을 피하는 것이 어려울 것이며 더 많은 요소와 개념에 익숙해 져야하므로 생산성이 떨어집니다.
따라서보다 안정적인 시스템을 만들고 의도하지 않은 결과를 피하기 위해 단일 책임을 수행하는 것이 중요합니다. 일부 파일은 아키텍처 허브이며 새로운 기능이 추가됨에 따라 활성화 상태를 유지하지만 파일을 닫을 수있는 방식으로 코드를 작성하고 철저한 검토, 테스트 및 QA 이탈 영역을 작성하는 것이 좋습니다.
Churn은 이러한 활성 파일을 표면화하므로 코드베이스의 표면적 변경 영역을 줄이기 위해 파일을 분할할지 여부를 결정할 수 있습니다.