好代码的静默死亡
Source: Hacker News
什么是 “Good Code™”?
Good Code 是易于阅读和理解的代码。
Good Code 是开发和维护时令人愉悦的代码。
Good Code 是为特定目的而存在的代码,且不多余。
Good Code 是罕见的天赋、经验、热情以及可能对业务并非立刻有用的时间投入的产物。而且,遗憾的是,Good Code 本身就很少见。
话虽如此,按职业划分,我是一名软件工程师——而不是“计算机程序员”、也不是“编码员”,更不是任何暗示我的工作是“编写好代码”的头衔。事实上,我的职位名称根本不要求我阅读或编写代码!我的工作是创建有用的软件,解决真实的问题。
一个真实的案例
最近,我在 Modal 的一位同事重写了一个深度集成 Linux 内核的外部系统。最初的重写只是把 C 代码库翻译成 Rust,以便进行一些自定义功能的开发。生成的代码并不差,也不是非惯用的 Rust。但它并不是 Good Code。它难以阅读和理解,后期扩展和维护会很困难,甚至我们也不清楚为何要承担重写并维护这个额外系统的负担。
最初的重写还大量依赖编码代理。
同事随后投入时间去了解内核子系统,弄清原始 C 程序为何如此编写,并亲自重新实现了 Rust 版本。两者的差别天壤之别;代码自然流畅,能够自我解释底层子系统,甚至可以说是整个代码库中最好的部分——我认为它甚至比原始的 C 代码还要好,尽管这类程序本来就是 C 优于 Rust 的典型场景。
那是几周甚至几个月来,我第一次感受到日常工作中常有的那种兴奋——对眼前代码行的兴趣。我过去大多数日子都会写(近似于)Good Code。某个时刻,一切都改变了。如今,我甚至不再写大多数提交代码的第一版。我在有编码代理相伴时效率明显更高。它们在编码方面并不糟糕,只是没有真正出色。说到底,它们吐出的代码……还能接受。能完成任务,能通过我的基本测试,但显然不是 Good Code。
对未来的思考
也许对这些代码行的在乎已经成为过去。我确信曾有热衷于 Good Assembly 或 Good Circuits 的人,他们的热情已经在“过去的模样”回响中悄然消散,随着他们和各自领域的演进而被遗忘。从我的(有偏见的)视角来看,软件工程的变革显得异常突兀,我不禁为 Good Code 的沉默消逝感到惋惜。