개발자들에게 부족한것이 다른 사람의 감정을 이해하지 못하는것. 그러니까 사용자와 감정이입이 되기 힘들고, 그만큼 소통이나 대화에 서툴다는 반증이 아닐런지...
그런 의미에서 이책은 철저하게 읽기 좋고 이해하기 쉬운 코드를 만드는 방법을 가장 단순한 예로 정말 알기쉽게 설명한다. 자바스크립트로, 자바로, C++로 그리고 파이썬까지 예를 들어가며 직접 구현하고 보여준다. 무려 2틀 동안에 읽어버릴 정도로 쉽다. 깊이가 없는게 당연할 정도로 쉬운 코드 작성의 원리를 설명한다.
개발하시는 분이나, 개발에 전념하실 분들은 일독을 권한다. 아래는 중요한 구절 요약..
역자가 임백준. 번역도 깔끔하고 읽기에 너무 편하다.
읽기 좋은 코드가 좋은 코드다.
- 더스틴 보즈웰, 트레버 파우커 지음
- 임백준 옮김
1장 코드는 이해하기 쉬워야 한다.
코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다.
2장 이름에 정보담기
-의미있는 특정한 단어 고르기 : get, size, stop, tmp, retval, foo 등과 같은 단어 피하고, 상황에 적합한 화려한 단어를 사용하라.
그냥 단어와 대안이 되는 화려한 단어
send : deliver, dispatch, announce, distribute, route
find : search, extract, locate, recover
start : launch, create, begin, open
make : create, set up, build, generate, compose, add, new
재치있는 이름보다 명확하고 간결한 이름이 더 좋다.
tmp 라는 이름은 대상이 짧게 임시적으로만 존재하고, 임시적 존재 자체가 변수의 가장 중요한 용도일때에 한해서 사용해야 한다.
좋은 이름을 생각하려고 고민하는 습관을 들이면 '작명을 위한 내공'이 빠르게 쌓인다.
추상적인 이름보다구체적인 이름을 사용하라.
추가적인 정보를 이름에 더해라.
단위를 포함하는 값에는 단위를 추가(start_ms, delay_usec, size_mb, max_kpbs, degrees_cw)
이름길이에 대해 : 좁은 범위에서는 짧은 이름, 긴이름(에디터에서 지원), 멤버인지 변수인지 구분되도록 이름짓기.
3장 오해할 수 없는 이름들
본인이 지은 이름을 "다른 사람이 다른 의미로 해석할 수 있을까 ?" 라는 질문을 던져보며 철처하게 확인해야 한다.
경계를 포함하는 한계값을 다룰 때는 min과 max를 사용
경계를 포함하느 범위에는 first와 last를 사용
4장 미학
코드를 읽는 사람이 이미 친숙한, 일관성 있는 레이아웃을 사용
비슷한 코드는 서로 비슷해 보이게 만들어라
서로 연관된 코드는 하나의 블록으로 묶어라
미학적으로 보기좋은 코드가 사용하기 더 편리하다는 사실.
코드를 보기 좋게 만드는 작업은 코드의 구조 자체를 개선시킨다.
도움이 된다면 코드의 열을 맞춰라
의미있는 순서를 선택하고 일관성 있게 사용, 선언문을 블록화, 코드를 문단으로 분리
일고나성 있는 스타일은 '올바른' 스타일보다 더 중요하다.
5장 주석에 담아야 하는 대상
주석의 목적은 코드를 읽는 사람이 코드를 작성한 사람만큼 코드를 잘 이해하게 돕는 데 있다.
코드에서 빠르게 유추할 수 있는 내용은 주석으로 달지말자.
설명 자체를 위한 설명을 달지 말고, 나쁜 이름에 주석을 달게 아니고 이름을 고쳐라.
좋은 코드 > 나쁜 코드 + 주석
프로그래머들끼리 알리는 표시와 의미
TODO : 아직 하지 않은 일
FIXME : 오동작을 일으킨다고 알려진 코드
HACK : 아름답지 않은 해결책
XXX : 위험 ! 여기 큰 문제가 있다
TextMate : ESC
6장 명확하고 간결한 주석달기
간결한 주석을 달고 모호한 대명사는 피하라
함수의 동작을 구체적으로 설명하라.
코드의 의도를 명시하라
정보축약형 단어 사용 - 구구절절, 경험적인, 주먹구구식, 순신한 해법등...
7장 읽기 쉽게 흐름제어 만들기
흐름을 제어하는 조건과 루프등은 최대한 자연스럽게 만들도록 노력해라.
줄 수를 최소화 하는 일보다 다른 사람이 코드를 읽고 이해하는 데 걸리는 시간을 최소화하는 일이 더 중요하다.
do/while 루프는 피하라
8장 거대한 표현을 잘게 쪼개기
거대한 표현을 더 소화하기 쉬운 여러 조각으로 나눈다.
하위표현을 담을 추가변수를 만들어 하위표현의 의미를 설명 - 설명변수라고도 한다.
영리하게 짧은 코드는 다른 사람에게 혼란을 주고 이해하기 어렵게 만든다.
9장 변수와 가독성
변수 제거 : 불필요한 임시 변수들, 중간 결과 담는 변수, 흐름 제어 변수
변수가 적용되는 범위를 최대한 좁혀라.
많은 메소드를 정적 static으로 만들어서 클래스 멤버 접근을 제한하라.
변수값을 변경시키는 곳이 많을 수 록 현재값을 추측하기가 어려워진다.
10장 상관없는 하위문제 추출하기
'개발자의 서재' 카테고리의 다른 글
비이성을 알아야 실수도 덜하고 행복해 질 수 있다. - 경제 심리학 (0) | 2013.06.19 |
---|---|
속도의 배신 - 기회는 기다려야 하고, 위기는 돌진해온다. (0) | 2013.05.24 |
마케팅은 인식의 싸움. 누가 사람의 마음을 빼앗아오는가 ? -마케팅 불변의 법칙 (0) | 2013.04.19 |
사람을 모으는 콘텐츠 전략의 모든것 - 콘텐츠 룰 (0) | 2013.04.19 |
언제 상황은 급격하게 변화하는가 ? 티핑포인트를 만드는 방법 (0) | 2013.03.18 |
스틱, 1초 만에 착 달라붙는 메시지, 그 안에 숨은 6가지 법칙 (0) | 2013.02.28 |
임백준의 "소프트웨어 산책" (0) | 2013.02.10 |
프로그램 되는 수동적인 참가자가 아니라, 적극적인 프로그래머가 되어야 한다. (0) | 2013.02.05 |
더욱 좋은 정보를 제공하겠습니다.~ ^^