注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

贺波-爱者独语

熟读胸中自有,多写笔下生花;博观而约取,厚积而薄发;会当凌绝顶,一览众山小!

 
 
 
 
 

日志

 
 

程序员如何做到『编程速度又快,Bug 数量又少』?  

2016-02-01 21:48:05|  分类: IT从业者 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

三个程序员被要求穿过一片田地,到达另一侧的房子。 

菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。” 

资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。 

大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。 

菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。 

资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。 

大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。 

“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?” 

“很简单,”他回答道,“我最初就没有埋地雷。” 

当我们遇到我们(或其他人)给自己埋下的逻辑炸弹,编程会变得很困难。我们天天在编写逻辑炸弹。它们就在地表下静静地待着,等着爆炸。一旦爆炸,通常就带来不可预测的严重后果。 

随着新的代码模块被加入到项目中,项目的复杂度会上升。这种上升不是线性的,而是呈某种指数形式。 

程序员的精力是一种有限的资源,所以这种爆炸式增长的复杂度最终会淹没程序员。你的大脑最终会不堪重负,这是一个转折点。 

这就是炸弹开始爆炸的时刻。有各种各样的炸弹:在遍历时修改数组,数组下标偶尔变成负数,另一个线程在你的函数执行的起点和终点中间改变对象的状态。轰,轰,轰…… 

我认为最快捷可靠的程序设计需要培养一种避免这些问题的风格。 

编写明确表达行为的代码。选择有意义、准确、无歧义的符号名字。严格执行命名方案,不要用不同的单词描述同一个事物。 

如果有,采用最简单的解决方案。不要为速度优化,而是为可读性和透明度优化。 

如果你在最初编写代码时没有注意可重用性,不要欺骗自己相信代码可以很神奇地被重用。相反,应该从一种情形着手,保持代码的具体性。如果值得修改代码让它一般化,那么应该做好彻底重写的准备。

********************************************************************

近期发现有个别网站及个人未经作者本人同意转载本博客中的文章,此行为严重侵犯了作者的著作权,在社会上造成了严重的影响。因此,本人对于网络版权再次郑重声明如下:

⑴凡本博客注明“【作者文集】”的所有作品,版权均属于贺波本人,任何网站或个人使用时必须获得本人授权。已经本人授权使用作品的,应在授权范围内使用,并注明来源及作者;未经本人授权不得转载、摘编或利用其它方式使用上述作品。凡未经授权,直接或者间接在互联网使用本博客文章的行为均将视为侵权行为,本人将保留追究其法律责任的权利。

⑵凡本博客非“【作者文集】”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本人赞同其观点和对其真实性负责。

⑶如因作品内容、版权和其它问题需要同本人联系的,请在30日内进行(邮件联系:hebo824@163.com)。

贺波

20091030

*******************************************************************

  评论这张
 
阅读(2046)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017