一位网友在Quora上提问:如何训练自己“编程快,bug少”?下面是GlynWilliams的精彩回复,4.5k赞。三名程序员被要求穿过一片田野,走到另一边的一所房子。菜鸟程序员目测了一下这近的距离,说:“不远啊!我只需要十分钟。”高级程序员看了一眼田野,想了想,说:“我应该一天就能渡过去。”新手程序员很惊讶。大程序员看了天地一眼,说道:“好像十分钟吧,不过我觉得十五分钟应该够了。”高级程序员冷笑。菜鸟程序员出发了,不过没多久,地雷就爆炸了,留下了一个大坑。现在他不得不偏离计划的路线,原路返回,反复尝试穿过田野。他用了两天时间才到达目的地,到达时浑身发抖,浑身是伤。高级程序员一出发就爬行,小心翼翼地拍打着地面,寻找地雷,只有在安全的情况下才前进。他在一天的时间里缓慢而小心地爬过田野,只触发了几颗地雷。大程序员出发后,直奔田野,非常果断。他只用了十分钟就到了对岸。“你是怎么做到的?””另外两人问道:“那些地雷怎么没伤到你们?others)给自己埋下逻辑炸弹,编程就会变得困难。我们每天都写逻辑炸弹。他们静静地坐在水面以下,等待爆炸。一旦爆炸,通常会带来难以预料的严重后果。随着新的代码模块被添加到项目中,项目的复杂性将会增加。这种增长不是线性的,而是指数级的。程序员的精力是一种有限的资源,因此这种复杂性的爆炸最终会压垮程序员。你的大脑最终会不堪重负,这就是临界点。这是炸弹开始爆炸的时候。有各种各样的炸弹:数组在遍历时被修改,数组下标偶尔会变成负数,另一个线程在你的函数执行开始和结束的中间改变了一个对象的状态。砰、砰、砰……我认为最快和最可靠的编程需要开发一种避免这些问题的风格。编写明确表达行为的代码。选择有意义、精确且明确的符号名称。坚持命名方案,不要使用不同的词来描述同一事物。如果可用,请使用最简单的解决方案。不要优化速度,优化可读性和透明度。如果您在最初编写代码时没有注意可重用性,请不要自欺欺人地相信代码可以神奇地重用。相反,从一种情况开始并使您的代码具体化。如果值得修改代码以使其通用,则准备进行完全重写。
