|
이 책은 진유림님의 '일일커밋 회고'라는 포스팅을 보고 이 책을 알게 되었다. 진유림님의 글이 책부록으로 실려있는데 내용은 거의 동일한 것 같다.
이 책에서 프로그래머가 지켰으면 하는 습관, 개발 방식, 문화 등등 다양한 주제로 노하우를 전하고 있는데 이미 하고 있었던것이 40%, 아직 경험해보지 않아서 잘 와닿지 않는 내용이 30%, 잘 습관화 되지 않아 앞으로 꼭 지켜야겠다고 생각한 내용이 30%정도 됐다.
소설처럼 가볍게 읽기 좋다.
대신 내가 지키지 않고 있는 것은 밑줄 치고 기억해두었다가 한두번 적용하면 금방 습관화 될 것이다.
1년 전에 짠 코드를 보고 하나도 고칠것이 없다고 생각한다면, 1년 동안 아무런 발전이 없었다는 뜻이다.(고수 제외ㅎㅎ)
-----------
목차
chapter 1 코드에 신경쓰기
1.1 코드가 중요하다
chapter 2 정돈된 코드 유지하기
2.1 보이는 것은 강력하다
2.2 의사소통
2.3 레이아웃
2.4 명명
2.5 스스로 가다듬기
chapter 3 코드 적게 쓰기
3.1 코드에 신경 써야 하는 이유
3.2 허술한 논리
3.3 중복
3.4 죽은 코드
3.5 주석
3.6 장황한 내용
3.7 나쁜 설계
3.8 공백
3.9 그래서 무엇을 해야 할까
chapter 4 코드 줄여 개선하기
4.1 제멋대로인 코드
4.2 불가피한 결화물
4.3 어떻게 해야 하나
4.4 죽은 코드 탐색
4.5 외과적 적출
chpater 5 코드베이스의 망령
5.1 외관
5.2 최신 기술
5.3 관례
5.4 설계 결정 사항
5.5 버그
chapter 6 경로 탐색하기
6.1 친구들의 작은 도움
6.2 단서 찾기
6.3 실행을 통해 배우기
chapter 7 똥통에서 뒹굴기
7.1 똥냄새 맡기
7.2 똥통 헤치고 나아가기
7.3 똥통 조사 결과
7.4 수렁에서 일하기
7.5 똥 치우기
7.6 수정하기
7.7 나쁜 코드? 나쁜 프로그래머?
chapter 8 오류 무시하지 않기
8.1 메커니즘
8.2 광기
8.3 감형 사유
chapter 9 예상하지 못한 것을 예상하기
91. 오류
9.2 스레딩
9.3 셧다운
--------------
2장 정돈된 코드 유지하기
정돈이라는 것은 탭vs스페이스의 선택, 괄호의 위치나 행의 글자 수 같은 것들..
잘못된 코드리뷰는 코드의 일부만 주어졌을 때 레이아웃(코드 외관)에서 오류를 찾으려는 한다.
코드 레이아웃이 중요하지 않다고 할 수는 없다.
좋은 코드는 명백하며 일관성이 있다. 레이아웃은 거의 눈에 들어오지 않는다.
2.3 레이아웃
2.3.1 구조 잘 잡기
코드를 장, 문단, 문장 단위로 자르라. 비슷한 것끼리 묶고 다른 것은 나누라. 함수는 장과 유사하다. 각 장은 별개이지만 서로 관련이 되는 코드가 있다.
짧은 코드: 한 함수 안에 다섯 '문단'으로 작성하는 대신 잘 명명된 다섯 함수로 나누라.
2.4 명명
2.4.1 불필요한 반복을 피하라
class WidgetList {
//public int numberOfWidgets() { ... }
public int size()
};
7.9.
3장 코드 적게 쓰기
소프트웨어를 개선하는 최고의 방법 가운데 하나는 바로 코드를 제거하는 것이다.
3.2 허술한 논리
if (expression)
return true;
else
return false;
위의 코드를 아내와 같이 단순하고 직관적으로 변경할 수 있다.
return expression;
3.6 장황한 내용
모든 변수를 맨 상단에 놓고 나중에 가져다 쓰는 방식의 C언어 스타일은 이제 시대에 뒤처졌다.
변수의 선언 부분과 정의 부분을 같은 위치에 쓰라. 코드 이해에 필요한 노력을 최소화하고 초기화되지 않은 변수로 인한 잠재적 에러를 줄이기 위함이다.
4장 코드 줄여 개선하기
4.5 외과적 적출
버전 관리 시스템에 체크인할 때, 죽은 코드를 제거하는 작업과 기능 추가 작업을 명행하지 말라고 앞 장에서 언급했다. 항상 다른 개발 작업과 '대청소'기능을 분리하자.
5장 코드베이스의 망령
보통의 프로그래머는 오랜 시간 동안 자신의 코드를 관리하지 않는 경향이 있다. 자신의 똥통에 뒹굴지 않고 남의 똥통에 뒹굴거나 똥을 쌀 새로운 곳을 찾는다. 참 대단하다. 심지어 애정 가득한 프로젝트도 흥미가 사라지면 방치하는 경향이 있다.
7월 10일
7장 똥통에서 뒹굴기
7.6 수정하기
- 기능변경과 코드의 레이아웃 수정을 동시에 하지말고 레이아웃 먼저 변경하고 커밋하고 그 다음에 기능 변경
- 수정으로 인해 버그가 생기지 않도록 단위 테스트로 코드 충분히 둘러싸기
7월 13일
10장 버그 사냥하기
10.3.2 이진 탐색 배우기
버그를 찾을 때 한줄한줄 디버깅 하지 말고 공간을 두개로 나누어 가운데 시점에서 코드가 괜찮은지 확인하라.
10.3.4 테스트하고 테스트하고 테스트해라
소프트웨어를 개발했다면 단위 테스트를 작성하는 데 시간을 투자하라.
'공부 > 책' 카테고리의 다른 글
12. 안나 카레니나1 (레프 니콜라예비치 톨스토이) (0) | 2016.07.05 |
---|---|
11. 미움받을 용기(기시미 이치로) (0) | 2016.07.05 |
10. 끌리는 컨셉의 법칙 (김근배) (2) | 2016.05.14 |
9. 무인양품 디자인 (닛케이디자인) (0) | 2016.05.09 |
8. 어떻게 원하는 것을 얻는가 (스튜어트 다이아몬드) (0) | 2016.04.05 |