이 책의 시작은 나쁜 코드를 만들어본 경험과 깨끗한 코드란 무엇인지 유명한 프로그래머들의 의견을 설명하고 있다. 이 장에서 내가 공감한 점은 나도 최근까지 나쁜 코드를 항상 짜왔고, 그에 대한 대가를 치른 적이 있다는 것이다.
스프링 프레임워크를 공부하면서 디자인패턴과 아키텍처가 얼마나 중요한지 알게되었다. 나의 첫 프로젝트인 모바일프로그래밍 수업에서의 코드들은 재설계가 불가능할 정도로 만들어놨다. 그래서 나는 그 이후로 최대한 코드를 깔끔하게 짜려고 노력했고, 그래서 도움을 받으려 이 책을 읽기 시작했다. 이 책을 통해 깨끗한 코드를 짜게되기를 바라며 정리를 시작하겠다.
우리는 항상 마감기한, 제출기한에 떠밀려 코드를 막 짜게되는 경험을 한다. 하지만 책에서는 기한을 맞추지 못하더라도 나쁜 코드를 짜지 말라고 한다. 나도 동의하는 바다. 결국 나쁜 코드를 짜게되면 당장의 기한은 맞추겠지만 다음 기한에서 나쁜 코드 때문에 기한을 못 맞추게 될 것이다. 우리는 항상 먼저 짜놓고 '나중에 리팩토링 해야지'라는 생각을 한다. 하지만 그런 날은 오지 않는다. 그 점을 겸허히 받아들이고 토대를 제대로 설계하는 것이 코드 작성에서 가장 중요한 부분이라 말하고 있다.
다양한 프로그래머의 말을 인용해서 설명하는 부분인데 내가 공감한 프로그래머는
깨끗한 코드는 단순하고 직접적이다. 결코 설계자의 의도를 숨기지 않으며, 명쾌한 추상화와 단순한 제어문으로 가득하다 - 그래디 부치
코드를 읽으며 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드이다 - 워드 커닝햄
정도이다. 내가 생각하는 깨끗한 코드는 적절한 결합도와 응집도를 가지며, 남이 읽었을 때 한번에 이해할 수 있는 코드라 생각한다.