打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
编程速度又快,Bug 数量又少,如何做到?


【伯乐在线导读】:有网友在 Quora 提问:如何把自己训练得『编程速度又快,Bug 数量又少』?下面是 Glyn Williams 的回复很精彩,4500+ zan。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

William Emmanuel Yu 的回复:(5.5k zan)


for (;;)

    practice();



觉得本文有帮助?请分享给更多人

关注「算法爱好者」,修炼编程内功

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
程序员奇谈之我写的程序不可能有bug篇
程序员必须明白的编程哲学,学会可以少奋斗两年!
盲人程序员靠键盘和耳机编程 背300行代码
一位编程大师给走在创业路上的程序员五点建议?
程序猿的一天到底能有多糟心?
如何半路出家成为一名编程高手?请先完成这5步!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服