이름: Clean Code
저자: 로버트 C. 마틴
옮긴이: 박재호, 이해영
출판사: 인사이트
https://github.com/Cruzer-S/CLCD
책 후반부에 나오는 프로젝트를 직접 작성하고 필자의 입맛대로 개선했다.
이런 저런 논란이 많은 클린 코드를 읽었다. 논란과는 달리 내용은 괜찮았으나 필자에겐 식상했다. 물론 필자가 놓치고 있었던 부분도 있었으나 전체적인 내용은 쉽게 읽혔다.
십수년간 프로그래밍을 하다보면 이 책에서 지향하는 바를 자연스럽게 행하게 된다. 코딩 스킬은 시간이 지나면서 완숙해진다. 머릿 속에 패턴이 구조화되면서 잘 짜게 되는 것이다. 필자 역시 저자가 겪었던 나쁜 코드의 패턴과 구조를 한 차례 맛 보았기에 고개를 끄덕이며 공감할 수 있었던 것 같다.
반대로 어린 시절의 내가 이 책을 읽었다면 더 빨리 성장할 수 있었을까? 딱히 그럴 것 같진 않다. 필시, 시행 착오 과정을 줄일 순 있었겠지만 본질적인 부분은 이해하지 못 할 것 같다. 코드를 한번 개좆같이 짜 봐야 이 책에 나온 코드의 무엇이 왜 좋고 나쁜지 알게 되기 때문이다. 한마디로 책 한권 읽는다고 되는 것이 아니라 오랜 시간 동안 코드를 작성해봐야 한다는 것이다. 따라서 코딩 경험이 적은 이가 본다면 책의 내용이 와닿지 않으리라 본다. 그러나 시간이 지나 돌아보게 되었을 때, 비로소 이 책의 가치를 느낄 수 있을 것이다.
또한 위 책에 대한 수 많은 논란 또한 저자가 전달하고자 하는 바를 정확하게 이해하지 못한 오독자들이 만들어낸 결과라 본다. 그렇다면 이 책이 전달하고자 하는 바가 무엇일까? 좋은 코드를 짜는 방법? 프로젝트를 제 시간에 마감하는 방법? TDD? 책을 읽은 독자들이 이따위 대답을 내놓았기 때문에 책의 평판이 깎인 것이라 생각한다.
이 책의 저자가 시종일관 독자들에게 호소하는 바가 있다. 바로 장인정신
이다. 그는 운신의 폭을 넓히기 위한 일체의 시도를 이 책에서 보인 것 뿐이다. 결국 클린 코드는 장인 정신이다.
코드에 완전 무결한 정답은 없다. 정답이 있으리라 믿는 것 자체가 오만한 것이다. 우리는
보이스카우트 원칙
에 따라 오늘보다 더 나은 코드를 작성하기 위해 부단히 노력해야 한다. 완벽한 코드가 아닌 더 나은 코드를 위하여.