이 책은 좋은 프로그램을 작성하는 요령을 설명한다.
책을 통해 얻을 수 있는 것
1. 좋은 코드와 나쁜 코드를 구분하는 능력
2. 좋은 코드를 작성하는 방법
3. 나쁜 코드를 좋은 코드로 바꾸는 실력
코드는 요구사항을 상세히 표현하는 수단으로 자동화되기에 불가능 하다.
예) 80년대 Killer App 개발한 회사
앱 출시 직후 선풍적인 인기를 끌었으나, 나쁜 코드 탓에 버그를 잡지 못하고, 나쁜 코드가 계속 쌓여
업그레이드가 더디고 프로그램이 자주 다운되어 망한 회사
나쁜 코드가 생산되는 이유:
르블랑의 법칙 : 나중은 결코 오지 않는다. (애초에 좋은 코드를 생산하자.)
나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.
원대한 재설계의 꿈
⇒ 코드가 엉망이니 새로 만들자
⇒ 새로운 시스템 설계
⇒ 새로운 팀원들이 재설계를 요구
⇒ 반복
시간을 들여 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길이다.
태도의 문제 : 잘못은 전적으로 우리 프로그래머에게 있다.
(기획변경탓, 마케팅탓, 고객탓, 촉박한 일정탓 금지...)
좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.
.
어느 환자가 수술 전에 시간이 오래걸리니 손을 씻지 말라고 요구한다.
의사는 이를 단호하게 거부해야한다. 왜? 질병과 감염의 위험은 환자보다 의사가 더 잘 아니까.
프로그래머도 마찬가지다.
나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.
원초적 난제
기한을 맞추는 유일한 방법은 코드를 최대한 깨끗하게 유지하는 습관이다.
깨끗한 코드라는 예술?
깨끗한 코드를 작성하려면 ‘청결'이라는 감각을 활용해 자잘한 기법들을 적용하는 절제와 규율이 필요하다.
열쇠는 ‘코드 감각'이다. 코드 감각이 있으면 좋은 코드와 나쁜 코드를 구분한다.
절제와 규율을 적용해 나쁜 코드를 좋은 코드로 바꾸는 전략도 파악한다.
깨끗한 코드를 작성하는 프로그래머는 빈 캔버스를 우아한 작품으로 바꿔가는 화가와 같다.
깨끗한 코드란?
깨끗한 코드는 우아하고 효율적이다.
keywords
깨끗한 코드란 한 가지를 잘 한다.
각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한길만 걷는다.
깨끗한 코드는 가독성이 좋다.
좋은 소설과 마찬가지로 깨끗한 코드는 해결할 문제의 긴장을 명확히 드러내야 한다.
반드시 필요한 내용만 담아야한다.
코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야한다.
깨끗한 코드는 다른 사람이 고치기 쉽다.
데이브는 깨끗한 코드와 테스트 케이스를 연관짓는다.
인간이 읽기 좋아야한다.
깨끗한 코드는 주의 깊게 작성한 코드다.
세세한 사항까지 꼼꼼하게 신경 쓴 코드다.
중복을 피하라
한기능만 수행하라
제대로 표현하라
작게 추상화하라
읽으면서 짐작한 대로 돌아가는 코드가 깨끗한 코드다.
언어를 단순하게 보이도록 만드는 열쇠는 프로그래머다.
캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.
지속적인 개선이야말로 전문가 정신의 본질이다!
이 책을 읽기만 해서는 깨끗한 코드를 만들 수 없다..
연습해 연습!