목차

차례

역자서문
들어가는 글

 

1장 스타일

1.1 이름
1.2 표현식과 문장
1.3 일관성과 관용 표현
1.4 매크로 함수
1.5 매직넘버
1.6 주석
1.7 왜 그렇게 귀찮게 구는가?

 

2장 알고리즘과 자료 구조

2.1 검색
2.2 정렬
2.3 라이브러리
2.4 자바의 퀵소트
2.5 O 표기법
2.6 크기가 커지는 배열들
2.7 리스트
2.8 트리
2.9 해시 테이블
2.10 요약

 

3장 설계와 구현

3.1 마르코프 체인 알고리즘
3.2 데이터 구조 후보들
3.3 C에서 데이터 구조를 만들기
3.4 출력 생성하기
3.5 자바
3.6 C++
3.7 Awk와 펄
3.8 성능
3.9 교훈

 

4장 인터페이스

4.1 콤마 구분값
4.2 프로토타입 라이브러리
4.3 다른 사람이 쓸 수 있는 라이브러리
4.4 C++ 구현
4.5 인터페이스 원칙
4.6 자원 관리
4.7 중단, 재시도, 실패?
4.8 사용자 인터페이스

 

5장 디버깅

5.1 디버거
5.2 실마리가 뚜렷한 쉬운 버그
5.3 실마리가 없는 어려운 버그
5.4 최후의 수단
5.5 재현 불가능한 버그
5.6 디버깅 툴
5.7 다른 사람의 버그
5.8 요약

 

6장 테스트

6.1 코딩하면서 테스트하기
6.2 체계적인 테스트
6.3 테스트 자동화
6.4 테스트 작업발판
6.5 부하 테스트
6.6 테스트 팁
6.7 누가 테스트를 하는가?
6.8 마르코프 프로그램 테스트
6.9 요약

 

7장 성능

7.1 병목현상
7.2 시간 측정과 프로파일링
7.3 속도를 위한 전략
7.4 코드 미세조정
7.5 공간 효율성
7.6 추정
7.7 요약

 

8장 호환성

8.1 언어
8.2 헤더와 라이브러리
8.3 프로그램 조직화
8.4 구분
8.5 데이터 교환
8.6 바이트 순서
8.7 호환성과 업그레이드
8.8 국제화
8.9 요약

 

9장 표기법

9.1 데이터 형식화
9.2 정규 표현식
9.3 프로그래밍 툴
9.4 해석기, 컴파일러, 가상머신
9.5 프로그램을 작성하는 프로그램
9.6 매크로로 코드 생성하기
9.7 동적 컴파일 하기

 

후기

 

부록 : 원칙 일람

 

찾아보기