力求代码完美,是我犯的最大的错误

142 阅读2分钟

   image.png

  我当程序员已经7年了,不过这也没什么大不了,虽然我一直认为自己是高级开发人员。

  整洁的代码、严密的单元测试、完善的文档,毋庸置疑这些都非常重要。作为一名程序员,我总是要求自己使用现代模式编写整洁的代码,而且我会频繁地检查所有的依赖项都是最新的,因为我想成为一名优秀的程序员。还记得,在以前的公司工作时,每当我的上司要求我放下手头的单元测试,提高开发新功能的速度时,我就会火冒三丈,为什么他意识不到单元测试有多么重要呢?当时,我们并没有其他自动测试,所以单元测试是保障产品稳定且没有回归问题的唯一希望。在我看来,上司提这种要求就是因为他的目光短浅。更有甚者,他还暗示我停止编写文档,将代码转换成复杂度更低的架构(当时项目刚刚开始)。我承认,压缩这些工作可以加快开发速度,但是将来我们肯定会遇到很多问题。我们不得不花费大量时间来修复回归错误,而且随着项目的发展,新的架构也会变得过于简单!此外,如果没有完善的文档,新加入的程序员又如何能快速融入项目呢?就为了这个问题,我们花费了好几个小时反复讨论,并分析了将来会给我们带来多少损失。然而,几个月后,那个项目以失败告终,因为预算大大超支。多年后,我不得不承认,我们的团队犯了一个巨大的错误。我们光顾着考虑将来,却忘记了眼前。我们完全忽略了当时的情况:我们只有很少的预算,而且需要在短时间内迅速建立最小可行产品。编写可以向他人展示且令人自豪的代码固然很好,但是能够顺利地完成项目不是更好吗?毕竟,编程不是艺术。

   如果你所在的团队非常强大,组织良好,拥有一名出色的领导,而且你始终记得开发的基本规则,那么我由衷地为你感到高兴。我相信你会成为比我更出色的一名程序员,因为“一名优秀的程序员”不仅仅是掌握技术相关的知识。