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

有网友在 Quora 提问:如何把本身训练得『编程速度又快,Bug 数量又少』?下面是 Glyn Williams 的回复很精彩,4.5 k 赞。
 php

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

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

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

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

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

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

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

“你是怎么作到的?”另外两我的问道,“那些地雷怎么没有伤到你?”
 spa

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

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

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

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

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

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

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

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

若是你在最初编写代码时没有注意可重用性,不要欺骗本身相信代码能够很神奇地被重用。相反,应该从一种情形着手,保持代码的具体性。若是值得修改代码让它通常化,那么应该作好完全重写的准备。


原文:http://www.php100.com/html/it/chengxuyuan/2015/0214/8646.html

相关文章
相关标签/搜索