【软件开发】我不相信我的代码

译自https://lackofimagination.org/2024/05/i-dont-trust-my-own-code/,本文对原文内容做二次修改。

文章目录


最近,我和团队中的一位初级开发者(我们叫他 Alan)进行了一次交流。我们讨论了一个新的通知功能,该功能将用于向成千上万的人发送提醒邮件,如果他们在过去的一个月左右忘记输入某些数据,邮件会提醒他们。

Alan 确信他写的代码是正确的。“我已经进行了充分的测试,”他说。我多年来从很多开发者口中听过类似的话,所以我叹了口气:“我已经有二十多年编程经验了,但即便是我自己也不完全信任我写的代码。”

你大概可以猜到,Alan 所说的“充分测试”的代码最终还是出了问题。在测试过程中,发现了许多bug,很多都是因为他对某些事情做出了错误的假设。

我并不是在批评 Alan。事实上,我是雇佣了他和其他团队成员的人。虽然他经验尚浅,且有点过于自信,但总体来说他写的代码还算不错,并且一直在努力提升自己,这种不断进步的态度在我看来比经验更为重要。

至于我自己,我当然不是世界上最优秀的软件开发者。我甚至不认为自己是特别优秀的。我见过不少写得比我差的开发者,也见过少数写得比我好的开发者。从统计角度来看,我算是中上水平。到底有多上水平,我难以界定,但只要意识到自己的局限性,就不重要了。

“一个合格的程序员完全意识到自己头脑的局限;因此,他以谦虚的态度面对编程任务,其中之一便是避免那些像瘟疫般的巧妙技巧。” — Edsger Dijkstra

巧妙的技巧虽然偶尔很诱人,但当你六个月后再回到这段代码时,你能记得当初是怎么解决问题的吗?如果你需要逐行检查代码才能理解它在做什么,那么其他开发者也难以理解。

常有人说,写代码比读代码容易,但这并不一定非得如此。当编写较长的代码段时,我发现偶尔停下来回顾一下自己的代码,就像是第一次看到它一样,帮助我发现潜在问题。我会问自己一些基本问题:我的函数是否足够简短?它们的命名是否具有描述性?复杂的逻辑是否封装在独立的函数中?我传递的参数是否过多?等等。

假设我们写的代码合理易

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值