1장. 실용주의 철학
1. 고양이가 내 소스코드를 삼켰어요
•
실수나 무지 같은 단점에 대해서도 정직해져야 한다
•
어설픈 변명을 만들지 말고 대안을 제시하라
2. 소프트웨어 엔트로피
•
깨진 창문(나쁜 설계, 잘못된 결정, 혹은 형편없는 코드)을 코치지 않은 채로 내버려 두지 마라. 발견하자마자 바로 고쳐라. 적절히 고칠 시간이 충분치 않다면 판자로 덮는 것만이라도 하라
3. 돌멩이 수프와 삶은 개구리
•
변화의 촉매가 되라.
5. 지식 포트폴리오
•
매년 새로운 언어를 최소 하나는 배워라
•
기술 서적을 분기마다 한 권씩 읽어라
•
자신이 배운 교훈들을 현재 프로젝트에 적용하도록 노력하라
•
이번 주부터 새로운 언어를 배우기 시작하라
6. 소통하라
•
말하고 싶은게 무언지 알아라
•
청중을 알아라
•
때를 골라라
2. 실용주의 접근법
7. 중복의 해악
•
반복하지 마라 - 매크로 함수 사용 이유를 말하는 거임
•
부주의한 중복은 피해라 - 길이는 계산되는 필드로 만드는 것이 낫다
•
가능한 곳에서는 언제나 객체의 속성을 읽고 쓸 수 있는 액세스 함수를 사용하라
•
재사용하기 쉽게 만들라
8. 직교성
•
코딩 - 전역 변수를 피해라 → 해당 데이터를 공유하는 다른 컴포넌트와 묶이기 때문
9. 가역성
•
결정이 돌에 새겨지는 것이라 가정하고, 발생할지도 모를 우연한 사건들에 대해 준비하지 않는 데에서 실수가 나온다
3. 기본적인 도구
18. 디버깅
•
가장 속이기 쉬운 사람은 자기 자신이다
•
컴퓨터는 거짓말하지 않는다
4. 실용주의 편집증
완벽한 소프트웨어는 존재하지 않는다
22. 죽은 프로그램은 거짓말을 하지 않는다
•
불가능한 뭔가가 발생했다는 것을 코드가 발견한다면, 되도록 빨리 종료해야 한다
23. 단정적 프로그래밍
•
실행되어야만 하는 코드는 절대 asset 속에 두지 마라
24. 언제 예외를 사용할까
•
예외를 정상적인 처리 과정의 일부로 사용하는 프로그램은 고전적인 스파게티 코드의 가족성 문제와 관리성 문제를 전부 떠안게 된다
25. 리소스 사용의 균형
•
시작한 것은 끝내라
•
C or C++ 로 개발을 할때 메모리를 할당 후 해제할때는 해당 포인터를 NULL로 만들어라. → UAF 방지
6장. 코딩하는 동안 해야 할 일들
33. 리팩터링
•
어떤 것이든 잘못되었다고 생각될 때, 그것을 변경하는 일을 주저하면 안 된다. 언제나 바로 지금이 최적기다
•
중복, 직교성, 성능 들이 리팩터링의 대상이다
•
리팩터링과 새로운 기능 추가를 동시에 하지 말라