第一部分 风格篇 1
第1章 从注释开始 3
第2章 天书奇谈 11
第3章 存在的就是合理的? 21
第4章 编译和编译选项 29
第二部分 编码篇 45
第5章 GOTO,又见GOTO 47
第6章 宏定义,从“断言”谈起 63
第7章 内存不够用啦 73
第8章 崩溃时刻2 85
第9章 体验“异常处理” 97
第10章 属性还是方法? 111
第11章 速度问题 133
第12章 多线程 145
第13章 图形用户界面和多线程 165
第三部分 版本管理篇 183
第14章 DLL地狱 185
第15章 “时空”变幻:版本演化难题 211
第16章 版本管理:两种协作方式 225
第22章 像门户网站一样的界面 227
第四部分 测试篇 239
第17章 两道概率题 241
第18章 三角形判定 249
第19章 巴蒂斯图塔之蒸发密令 263
第20章 二进制加法器:基于模型的测试 281
第五部分 系统设计篇 311
第21章 什么是“排序”? 313
第23章 糟糕的面向对象设计 345
第24章 最高境界 367
第六部分 附录 377
附录A 自己动手开发测试工具 379
附录B 参考文献 401