코드는 요구사항을 표현하는 언어다.
여러가지 사유로 돌아가게만 작성된 나쁜 코드는 결국엔 개발속도를 저하시킨다.
르블랑의 법칙
: ‘우선 돌아가는 프로그램을 작성하고 나중에 정리해야지 다짐한다.’
그러나 나중은 결코 오지 않는다.
나쁜 코드는 개발 속도를 크게 떨어뜨린다.
나쁜 코드에 지쳐 결국 기존 시스템의 모든 기능을 제공하는 새 시스템을 설계하게 된다. 새 시스템을 개발하는 동안 기존 시스템에 가해지는 변경도 모두 따라잡아야 한다. 언제 끝날지 모르는 개발이 시작된다. 처음부터 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법이다.
좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. 일정, 관리자, 마케팅 부서 등의 탓이 아니다. 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.
빨리 만드려면 나쁜 코드를 양산하게 되지만 빨리 가려면 깨끗한 코드를 유지해야 한다.
깨끗한 코드와 나쁜 코드를 구분할 줄 안다고 깨끗한 코드를 작성할 줄 안다는 뜻은 아니다.
‘코드 감각’이 있는 프로그래머는 나쁜 모듈을 보면 좋은 모듈로 개선할 방안을 떠올린다.
비야네 스트롭스트룹
: 나는 우아하고 효율적인 코드를 좋아한다. … 깨끗한 코드는 한 가지를 제대로 한다.
그래디 부치
: … 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. … 가독성!
데이브 토마스
: 깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. …
마이클 페더스
: … 깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다. …
론 제프리스
: 간단한 코드란
중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라.
워드 커닝햄
: 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. …
밥 아저씨
: 이 책은 우리 오브젝트 멘토 진영이 생각하는 깨끗한 코드를 설명한다. 우리가 가르치는 기법을 따른다면 깨끗하고 수준 높은 코드를 작성하리라 감히 장담한다. 하지만 우리 생각이 절대적으로 ‘옳다’라는 단정은 금물이다.
이 책은 우리가 오랫동안 고민하고 숙고한 교훈과 기법으 권고한다. 수십 년에 걸친 경험과 반복적인 시행착오로 습득한 교훈과 기법이다.
새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다. 코드를 짜기 위해 코드를 읽는 시간이 훨씬 많다. 주변 코드를 읽지 않으면 새 코드를 짜지 못한다. 주변 코드가 읽기 쉬우면 새 코드를 짜기도 쉽다. 주변 코드를 읽기가 어려우면 새 코드를 짜기도 어렵다. 그러므로 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게만들면 된다.
캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라. 시간이 지나도 언제나 깨끗하게 유지해야 한다.
Agile Software Development: Principles, Patterns, and Practices
PPP책은 객체 지향 설계의 원칙을 설명하고 전문 개발자들이 사용하는 실무 기법을 소개한다. PPP를 읽지 않았다면 이 책을 먼저 읽은 후 나중에 읽어보기 바란다.
이 책을 읽는다고 뛰어난 프로그래머가 된다는 보장은 없다. 뛰어난 프로그래머가 생각하는 방식과 그들이 사용하는 기술과 기교와 도구를 소개할 뿐이다. 나머지는 각자 자신에게 달렸다.