阅读《编写无错的代码》

多使用assert

这个小组的代码与Word 代码之间一个明显的区别是Word 代码从过去到现在一直都使
用断言和调试代码,而他们的代码却几乎没有使用断言。因此,其程序员没有什么好的办
法可以确定其代码中的实际错误情况,错误只能慢慢地暴露出来。如果他们在代码中使用
了断言,这些错误本该在几个月之前就被检查出来。

 

给不够清晰的断言加上注解即可。

 

对函数的每个参数进行断言。

 

在进行防错性程序设计时,不要隐瞒错误

 

 要利用不同的算法对程序的结果进行确认

由于速度是电子表格软件
成功的关键,所以为了保证绝不对其它无关单元中的公式重新计算,Excel 使用了一个相
当复杂的算法。这样做的唯一问题是因为该算法过于复杂,所以对其进行修改难免会引进
新的错误。Excel 的程序员当然不希望这种事情发生,所以他们又编写了一个只用在Excel
调试版本的重新计算工具。当原来的重新计算工具完成了重新计算工作之后,再用这个重
新计算工具对含有公式的所有单元进行一遍虽然缓慢但很彻底的重新计算。如果两次计算
的结果不同,就会触发某个断言

 

要消除随机特性 ─── 使错误可再现

 

然而,最好的测试代码应该是透明的代码,不管程序员
能否感觉到它们的存在,它们都会起作用。

 

那么,程序员测试其程序的最好办法是什么呢?是对其进行逐条的
跟踪,对中间的结果进行认真的查看

不要等到出了错误再对程序进行逐条的跟踪

 

,对代码进行逐条跟
踪的程序员很快就会学会编写较小的容易测试的函数,因为对于大函数进行逐条的跟踪非
常痛苦

程序员还会花
更多的时间去考虑如何使必需做的大变动局部化,以便能够更容易地进行相应的测试。

 

源级调试程序可能会隐瞒执行的细节
对关键部分的代码要进行汇编指令级的逐条跟踪

序 ……………………………………………………………………………… Ⅰ 某些背景 ……………………………………………………………………… Ⅲ 命名约定 ……………………………………………………………………… Ⅳ 引 言 ………………………………………………………………………… Ⅵ 第1章假想的编译程序 …………………………………………………… 1 第2章自己设计并使用断言 ……………………………………………… 8 第3章为子系统设防 ……………………………………………………… 31 第4章对程序进行逐条跟踪 ……………………………………………… 53 第5章糖果机界面 ………………………………………………………… 60 第6章风险事业 …………………………………………………………… 75 第7章编码中的假象 ……………………………………………………… 98 第8章剩下的就是态度问题 ……………………………………………… 115 后记 走向何方 …………………………………………………………… 129 附录A 编码检查表…………………………………………………………… 130 附录B 内存登录例程………………………………………………………… 133 附录C 练习答案……………………………………………………………… 140 参考文献……………………………………………………………………… 160
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值