程序员必备III -- 切勿巧合编程(转)

大多数人都能近乎自动地驾驶汽车,我们不用明确地命令我们的脚踩踏板,或是命令我们的手臂转动方向盘,我们只是想“减速并右转”。但是,可靠的好司机会不断查看周围的情况、检查潜在的问题,并让自己在万一发生意外时处在有利的位置上。编码也是这样--它在很大程度上只是例行公事,但保持警觉能够很好地防止灾难的发生。

也许很多人并不了解自己也曾经在不断地靠着巧合编程,但这的确是个无可争议的事实,我来举个通俗的例子:

假定你接受了一项编程任务,你敲入一些代码,进行实验,代码好像能工作。然后又敲入一些代码,进行实验,代码又好像能工作。在连续进行了几周这样的编程后,程序突然停止了工作,于是你该怎么办?你会尝试去修正它,但你根本不知道原因何在,结果可能是你花费大量的时间四处检查但仍然无法修正。这种编码的习惯就是我所说的依靠巧合编程

之所以你不知道代码为何失败,原因是一开始你根本就不知道它为何能工作。这就是巧合编程带给我们的错误信息,因此我们不能依靠巧合。

那么为什么我们要冒把东西弄糟的风险来编码呢?

  1. 我们并不真正了解它,也许它不是真正能工作的--只是看起来能
  2. 你所依靠的边界条件也许只是偶然,在不同情形下,它的表现可能就会不同
  3. 多余和不必要的调用会影响代码的稳定以及引入更多新的bug
  4. 注意你所使用代码的语境
  5. 编码过程中有太多的隐含假定。巧合可以在所有层面上让人误入歧途--从生成需求直到测试,因此我们需要证明而不是假定

我们想要让编码所花的时间更少,想要尽可能在开发周期的早期抓住并修正错误,想要在一开始就少制造错误。如果我们能深思熟虑地编程,那对我们会有所帮助:

  • 如果听过“石头汤与煮青蛙”,就应该知道必须在编码过程中总是要意识到你在做什么
  • 不要盲目地编程,试图构建你不完全理解的应用难免被巧合误导
  • 按照计划来行事
  • 依靠可靠的事务
  • 为你的假定建立文档
  • 不要只是测试你的代码,还要测试你的假定
  • 为你的工作划分优先级,把时间花在重要的方面
  • 不要让已有的代码来支配将来的代码,如果不再适用,所有的都可被替换

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126230/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126230/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值