나쁜 코드를 짜면 계속해서 나쁜 코드를 짜게 되고 결국 효율성이 극도로 떨어져서 0에 수렴하게 됨
코드 읽는 시간과 짜는 시간 비율이 10 대 1을 훌쩍 넘겨서 처음부터 코드를 잘 짜야 함
체크아웃할 때보다 좀 더 깨끗한 코드를 체크인한다면 코드는 절대 나빠지지 않음
-> 변수 이름 하나 개선, 조금 긴 함수 하나 분할, 약간의 중복 제거, 복잡한 if문 하나 정리하는 것으로 충분함
이 책은 Agile Software Development: Principles, Patterns, and Practices (PPP)의 프리퀄임
PPP에서 설명하는 다섯 가지 원칙
- SRP (The Single Responsibility Principle) : 클래스에는 단 한가지 변경 이유만 존재해야 함
- OCP (The Open Closed Principle) : 클래스는 확장에 열려 있고 변경에 닫혀 있어야 함
- LSP (The Liskov Substitution Principle) : 상속받은 클래스는 기초 클래스를 대체할 수 있어야 함
- DIP (The Dependency Inversion Principle) : 추상화에 의존해야 하며 구체화에 의존하면 안됨
- ISP (The Interface Segregation Principle) : 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지해야 함