编程精粹

Steve Maguire

出版时间

1993-06-01

ISBN

9787505320420

评分

★★★★★
书籍介绍
这不是一本教你语法的手册,而是一本重塑编程习惯的实战笔记。全书由大量简短的章节构成,每一条都从真实开发中踩过的坑里提炼出来:如何消除错误发生的随机性、为何无定义特性等同于非法特征、断言注解该写多长、什么时候该用另一种算法来验证结果。它不追求体系的完整,而是反复强调一个朴素却常被忽视的观点——好的观念和习惯,远比技巧更优先。多位读者重读后选择把旧程序推倒重写,正是因为它戳中了那个软肋:写代码容易,让错误无处藏身很难。适合愿意回头审视自己代码、想把调试从运气变成方法的C程序员。
AI导读
核心看点
  • 源自微软实战经验,聚焦C语言高质量代码编写。
  • 强调断言、单元测试与数据流跟踪等查错技巧。
  • 短小精悍,从实践倒推理论,避免常见低级错误。
读者共识
  • 经典之作,许多程序员人手一本,口碑极佳。
  • 重读体会更深,好的编程观念与习惯才是第一位。
  • 读完促使读者重写旧代码,对基础提升帮助巨大。
精彩摘录
  • "暴露错误的关键是消除错误发生的随机性。"
  • "在原型中使用更精确类型的缺陷是常常必须进行参数的显式类型转换,以消除类型不匹配的错误,即使参数的次序正确。"
  • "如果你发现自己正打算绕过某个步骤。而它恰恰可以很容易地用来查错,那么一定要阻止自己绕过。相反,要利用所能得到的每个工具进行查错。此外,单元测试虽然意味着查错,但如果你根本就不进行单元测试也是枉然。"
  • "对于程序员来说,无定义的特性就相当于非法的特征,因此要利用断言对其进行检查"
  • "在写断言的注解时,不必长篇大论。一般的方法时使用经过认真考虑过的间断文句,它可能比用一整段的文字系统地解释出每个细节地指导性更强。但要注意,不要在注解中建议解决问题的办法,除非你能确信它对其他程序员确有帮助。做注解的人当然不想让注解把别人引入歧途。"
  • "当编写代码时,要抓住一切机会对程序的结果进行验证(调用所有其它函数的瓶颈函数,是特别适于进行这种检查的好地方)。要尽可能地使用不同的算法,而目要使其不仅仅是同一算法的又一实现。通过使用不同的算法不仅可以发现算法实现中的错误,而且还增加了发现算法本身错误的可能性."
  • "“不要让事情很少发生。”因此我们需要确定子系统中可能发生哪些事情,并且使它们一定发生和经常发生。如果发现子系统中有极罕见的行为,要干方百计地设法使其重现。"
  • "对代码进行逐条跟踪的真正作用是它可以使我们观察到数据在函数中的流动。如果在对代码进行逐条跟踪时密切地注视数据流,就会帮助你查出下面这么多的错误:  上溢和下溢错误;  数据转换错误;  差1错误;  NULL指针错误;  使用废料内存单元错误(0xA3类错误);  用 = 代替 == 的赋值错误;  运算优先级错误;  逻辑错误。"
下载
收藏