최근 2주 정도를 이 책을 읽으면서 잠이 들곤 했다. 재밌고 잘 쓰여진 책이다.

실용주의 프로그래머
실용주의 프로그래머

책에는 역주가 상당히 많은데, 대부분 관련 부분에 대해서 더 많은 정보를 얻을 수 있는 책들을 소개하는 내용이다.
역자가 얼마나 많은 책들을 읽었는지 알 수 있다.

다음은 코딩하면서 항상 고민해 왔던 것들이다.

  • 어떻게 커플링이 없이 레이어를 잘 설계하는가.
  • 어떻게 모듈 혹은 함수간의 커플링을 줄일 수 있는가.
  • 어떻게 중복된 코드를 제거할 수 있는가.

이 책의 저자들은 위의 내용들에 대한 답을 잘 알고 있는 것 같다.
저런 내용들에 대해서도 다뤄줘서 좋았지만 뭔가 깨달음을 얻으려고 하면 내용이 탁 끝나버리곤 해서 아쉬웠다.
아마 아직 내 경험이 부족하기 때문일까?

우연에 맡기는 프로그래밍이나 깨진 유리창의 법칙을 읽으면서는 부끄러웠다.

깨진 유리창 하나를 방치해 두면, 그 지점을 중심으로 범죄가 확산되기 시작한다는 이론으로, 사소한 무질서를 방치하면 큰 문제로 이어질 가능성이 높다는 의미를 담고 있다.
-깨진 유리창 이론, 위키피디아에서 발췌

이는 일상 생활의 많은 곳에서 볼 수 있는데 프로그래밍 세계에서도 마찬가지이다.

어떤 문제를 해결하는데 있어서 해법을 두개 찾았다고 하자.
Plan A는 정석으로 해결하는 방법이고(조금 더 까다롭고 조금 더 오래걸린다. 하지만 완벽하다),
Plan B는 꼼수로 대충 메꾸는 방법이다.(금방 할 수는 있지만 부작용이 있다)

어떤 선택의 순간에 놓였을 때.
기존 코드들이 아름답게 잘 짜여져 있었다면 Plan A를 선택하게 되지만, 반대의 경우라면 서슴없이 Plan B를 선택하게 된다.
마치 깨진 유리창의 법칙과도 같이.

나는 그동안 얼마나 많은 플랜 B를 선택해왔던가.

더 잘하고 싶다.