- 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다. (초안을 쓰고 고치고 최종안을 만들자.) → 깨끗한 코드를 내놓으려면 단계적으로 개선해야 한다.
- 프로그램을 망치기 가장 좋은 방법 중 하나는 개선이라는 이름 아래 구조를 크게 뒤집는 행위다.
- 점진적으로 개선하려고 글쓴이는 TDD 기법을 사용했다.
- TDD는 언제 어느 때라도 시스템이 돌아가야 한다는 원칙을 따른다. 시스템을 망가뜨리는 변경을 허용하지 않는다. 변경을 가한 후에도 시스템이 변경 전과 똑같이 돌아가야 한다.
- 테스트 슈트를 만들어 실행했을 때 통과한다면 올바로 동작한다는 사실을 확인할 수 있다.
- 그저 돌아가는 코드만으로는 부족하다. (돌아가는 코드가 심하게 망가지는 사례는 흔하다.)
- 나쁜 코드보다 더 오랫동안 더 심각하게 개발 프로젝트에 악영향을 미치는 요인은 없다.
- 나쁜 코드는 썩어 문드러진다.
- 무게가 늘어나 팀의 발목을 잡는다.
- 속도가 점점 느려지다 못해 기어가는 팀도 있다.
- 너무 서두르다가 이후 악성코드라는 굴레를 짊어진다.
- 나쁜 코드도 깨끗한 코드로 개선할 수 있다.
- 비용이 엄청나게 많이 든다.
- 코드가 썩어가며 모듈은 서로서로 얽히고설켜 뒤엉키고 숨겨진 의존성이 수도 없이 생긴다.
- 처음부터 코드를 깨끗하게 유지하기는 상대적으로 쉽다.
💙 코드는 언제나 최대한 깔끔하고 단순하게 정리하자. 절대로 썩어가게 방치하면 안 된다.