WRITING SOLID CODE (Steve Maguire, 2001) 독후감
이 책을 처음 본 게 언젠지 기억나지 않는다. 책에 줄이 그어진 걸 보니, 그 시점 이전인 것 같다. 언젠가부터 책에 메모를 안 하고 포스트잇을 사용하기 시작했거든. 최근 다시 볼 기회가 생겨서 글을 남긴다.
나온 지 오래된 책이지만 단단한 코드를 짜기 위해 명심해야 하는 건 변하지 않는다. 모든 걸 의심하며 방어적으로 프로그램을 짜는 것. 그렇다고 무조건 방어적인 것이 좋지만은 않다. 버그를 감추는 위험이 있기 때문. 책에서는 이런 문제점도 다루며 assert를 사용해 debug 구성에선 빠른 실패를 권장하고 있다. 요약하면 debug에선 빠른 실패를 하는 방어적인 프로그래밍이라 할 수 있겠다. 지금은 이렇게 생각하는데, 나중엔 생각이 변할지도 몰라.
책에서 절대 발생하면 안 되는 조건을 assert로만 검사하는데, 이건 좀 아쉽다. release에서 절대 발생하지 않는다는 걸 어떻게 보장하지? release에서도 처리를 할 수 있는 코드가 없는 게 아쉽다. 이건 뭐 어쩔 수 없는거면 차라리 exception을 던지던가.
post condition은 assert로만 확인해도 괜찮겠다. 더 빨리 실패할 수 있으니깐. 이건 요즘 실천하는 중.
종이도 낡았고 폰트도 촌스럽고 뭔가 지금은 소용없는 구식 같지만 책에 실려 있는 단단한 코드를 짜기 위한 지침은 낡지 않았다.
Update
표지 사진 교체