内容简介
Chapter1: 风格
1.1 名字
1.2 表达式和语
1.3 一致性和习惯用法
1.4 函数宏
1.5 幻数
1.6 注释
1.7 为何要在风格方面费心
Chapter 2: 算法与数据结构
2.1 检索
2.2 排序
2.3 库
2.4 一个Java快速排序实现
2.5 大O记法
2.6 自增长数组
2.7 表
2.8 树
2.9 散列表
2.10 小结
Chapter3: 设计与实现
3.1 马尔可夫链算法
3.2 在多种数据结构之间选择
3.3 使用C语言构建数据结构
3.4 生成输出
3.5 Java
3.6 C++
3.7 Awk和 Perl
3.8 性能
3.9 经验教训
Chapter4: 接口
4.1 逗号分隔值
4.2 一个原型库
4.3 一个给他人用的库
4.4 一个C++实现
4.5 接口原则
4.6 资源管理
4.7 中止、重试或失败
4.8 用户界面
Chapter 5: 调试
5.1 调试器
5.2 线索明显、易于发现的错误
5.3 线索不明、难以发现的错误
5.4 最后的手段
5.5 不可重现的错误
5.6 调试工具
5.7 他人引入的错误
5.8 小结
Chapter6: 测试
6.1 一边编码,一边测试
6.2 系统化测试
6.3 测试自动化
6.4 测试脚手架
6.5 压力测试
6.6 测试心得
6.7 谁来测试
6.8 马尔可夫程序的测试
6.9 小结
Chapter7: 性能
7.1 瓶颈
7.2 计时和剖析
7.3 加速策略
7.4 代码调优
7.5 空间利用率
7.6 评估
7.7 小结
Chapter 8: 可移植性
8.1 语言
8.2 头文件和库
8.3 程序架构
8.4 隔离
8.5 数据交换
8.6 字节序
8.7 可移植性和升级
8.8 国际化
8.9 小结
Chapter9: 记法
9.1 数据格式化
9.2 正则表达式
9.3 可编程工具
9.4 解释器、编译器和虚拟机
9.5 写程序的程序
9.6 用宏生成代码
9.7 运行中编译
后记
Appendix: 规则汇编