TDD 입문하기 - 테스트 주도 개발 기초: 정리된 코드
정리된 코드
기능 명세를 만족하는 것 외에 지속적으로 코드를 정리하면 얻을 수 있는 이점에 대해 고민
작업 환경 정리
- 생산성
- 정리된 환경과 어지럽혀진 환경에서의 작업 생산성 차이
- 지속성
- 작업 환경의 생산성이 일정 수준 미만으로 떨어지면 더 이상 그 환경에서 작업 진행은 불가능
- 코드는 작업 환경이자 작업 결과물
리팩터링
- 수학에서의 factorization or factoring은 더 작거나 단순한 개체로 사용한다.
- 프로그램의 Re-factoring 은 의미를 유지하며 코드베이스를 정리하는 것이다.
의미를 어떻게 유지할 것인가?
- 테스트를 통해서 변경된 코드가 변경전과 동일한 기능을 지원하는지 검증