程序员|程序员最重要的技能:知道什么时候不写代码( 二 )


永远不要随意扩展软件的用途 。 一旦知道了什么内容对你的项目是必不可少的 , 那么在下一次评估所有可能出现的代码请求时 , 你会意识到这一点 。 你将清晰地知道编写代码的需求是什么 。 这个系统应该实现哪些特性?哪些代码值得编写?于是 , 你可以勇敢地去质疑一切 , 因为你确切地明白那些不必要的代码是如何拖垮你的项目的 。
知道什么时候不应该编码可以使你的代码库更小 。
程序员|程序员最重要的技能:知道什么时候不写代码文章插图
【程序员|程序员最重要的技能:知道什么时候不写代码】当你启动一个新项目时 , 一开始系统里只有两三个源文件 。 一切看起来都那么简单明了 。 而编译和运行代码仅仅需要几秒钟 。 这时 , 你完全清楚在哪里可以找到你想要的东西 。
然后 , 随着项目的增长 , 将会有越来越多的源文件填满你的目录 。 其中每个代码文件动辄就包含数百行代码 。 为了更好地组织这些代码 , 你很快就需要设立多个目录 。 记住哪个函数调用其他函数变得比以前更加困难 , 而追踪 bug 需要付出更多的工作量 。 管理这个项目变得越来越困难 , 于是 , 你需要更多的程序员来帮忙 。 然后 , 沟通开销随着程序员数量的增加而急剧增加 。 你的项目会变得越来越慢 。
最后 , 这个项目变得非常庞大 。 添加新特性变为一种痛苦 。 因为即使是很小的改变也需要花上几个小时 。 修复当前的 bug 总是会引入新的 bug 。 你的项目开始赶不上最后期限……
现在 , 这个项目对你来说是一场折磨 。 为什么会变成这样?
这都是因为你不明白什么时候不应该编码 。 于是你对所有可能的特性请求都毫不犹豫地说“是” 。 你是盲目的 。 编写那些不必要的新代码会让你忽略软件最必不可少的核心内容 。
这听起来就像恐怖电影一样 , 是吗?
但如果你一直对每件事都说“是” , 这种恐怖的情况就会发生 。 你需要知道什么时候不需要编码 , 并从项目中删除所有不必要的代码 。 这将让你的工作变得更容易 , 并使你的软件的寿命更持久 。
我生产效率最高的一天就是扔掉了 1000 行代码 。 ——Ken Thompson我知道 , 要明白什么时候不需要编写代码 , 这点做起来是很难的 。 即使是高级程序员来说也并不容易 。 也许 , 我在这篇文章中所写的东西对于初级程序员来说很难理解 , 但我认为本文的叙述方式还是能让人理解这些要点的 。
我明白 , 有的程序员或许刚刚开始你的编程生涯 , 想在编码领域大展身手 。 你对此感到兴奋不已 。 这点无可厚非 。 作为软件从业者 , 希望你永远不要失去这种兴奋感 , 但也请不要忽视重要的事实 。 我们需要从自己的错误中吸取教训 。 你和别人一样 , 也会犯错误 , 也会从自己的错误中吸取教训 。 但如果你能从我们的经验中学习 , 至少能更事半功倍 。
请继续编码吧 , 但要知道什么时候需要对编码说“不” 。