零缺陷编程读书笔记(一)引言

我们带着下面3个问题来学习引言:

1  你肯为自己的bug买单吗?
2  测试是谁的工作:开发工程师,测试工程师?
3  有错误就是有错误,版本备份!

 

几年前在一次偶然翻阅 Donald Knuth所著《TEX The Program》一书时,序言中的一段话深深触动了我:

我确信 TEX的最后一个错误已经在 1985 11 27日被发现并排除掉了。

但是如果出于目前尚不知道的原因,TEX仍然潜伏有错误,我非常愿意付给第一个发现者$20.48元。

(这一金额已是以前的两倍。我打算在本年内再增加一倍。你看我是多么自信!)

我对 Knuth是否曾经付给某人$20.48甚至$40.96元不感兴趣,这并不重要。重要的是他对他的程序所具有的那种自信。

那么据你所知,究竟有多少程序员会严肃地声称他们的程序完全没有错误?又有多少敢把这一声称印刷在书上,并准备为错误的发现者付钱呢?

 PS:

说实话,在我目前的工作经历中,还未碰到有对自己的程序这样说话的人。

我对自己写的代码,只能说是做到实现了功能,考虑了性能,不管狂言没有问题,更没有勇气让世人来找bug,并付出报酬。

也许这是一种境界,也许是一种责任,又或者说是一种文化。

 

2

由于现代的程序员已经放弃了对代码进行彻底,测试的职责他们没法知道代码中是否有错,管理人员也不会公布测试情况。只是说别操那个心,测试人员会为你作好测试的。更为微妙的是管理人员,希望程序员自己进行代码的测试,同时他们希望测试员作得更彻底些因为毕竟这是他们的本职工作。

PS:

个人觉得,测试工作首先是程序员自己的工作,然后才是测试工程师的工作,测试工程师是对程序员功能和性能实现的验收和把关,而不能说:开发是程序员的事情,测试是测试工程师的事情。之前就出现这样扯皮的事情:希望在结果开发、测试后上线,发现了一个bug。然后开发说是测试不彻底,测试说开发功能没实现。其实,都对,也都不对。都对,是都说得对。都不对,是都没做对。

 

3 有错误就有错误

不必为本书的读者定义什么叫错误,相信读者都知道什么是错误。但是错误可以分为两类:

一类是开发某一功能时产生的错误,

另一类是在程序员认为该功能已经开发完成之后仍然遗留在代码中的错误。

例如在 Microsoft中,每个产品都由一些绝不应该含有错误的原版源代码构成。

当程序员给产品增加新功能时,并不直接改变相应的原版源代码,改变的是其副本。

只有在这些改变已经完成,并且程序员确信相应代码中已经没有错误时,才将其合并到原版源代码中。

此从产品质量看,在实现指定功能过程中不论产生多少个错误都没有关系,

只要这些错误在相应代码被并入原版源代码之前被删除掉就行。

PS:

首先,有错误就有错误,这句话,我很赞成。说其他的,就是在找借口,扯理由。

其次,是这种副本的做法,其实很好,值得借鉴。这是一种习惯也是一种技巧。我相信,很多程序员,都在开发过程中遇到这种问题,就是昨天做好了一个版本,实现了一个功能,今天改了一些地方,昨天实现的那个功能有问题了。然后又不知道出现什么问题?问有没有昨天版本的代码。答曰:没有。

做好版本备份是一个很重要的工作,粒度可大可小。可以小到一个bug的修改,也可以大到一个版本的发布。一般来说每天做好备份是比较好的习惯。

 

 

 

 转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/17336523

 

 

 

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值