软件开发的一个最基本的事实是:我们必须要写代码,但对于这样的一个事实的最大一个误解是:我们的工作就是写代码。作为软件程序员的最初几年,我一直被这样的思想所迷惑,写代码是一种很强的事,是一种超能力,我们喜欢这种创造东西、成就东西的感觉。然而,多年之后,我终于明白,事情不是这样的。事情的真相是:程序员要干的活是尽量让软件的代码最少。
不要误解,我指的不是像code golf那样压缩代码、节省字符——这样只会导致我们写出的代码无法阅读和维护。如果你能认识到这样的事实:我们大部分的时间都消耗在维护自己写的可怕的代码上,你就会发现,让代码最少、少给自己找麻烦,这无疑就会变成一个相当有创意的好思想。
为什么?
你可以查看一下,看看你用的工具,看看你用的框架。所有你做的,所有这些你使用的工具,都是用来减少代码量的。这些工具能减少犯错误的机会,把开发过程中能导致犯错的因素隔离开。
所以,为什么我们应该让代码尽量少?我承认,我之前说我们的工作是写最少的代码,这是撒了个小谎。我们真正的工作是思考,我们的工作是思考手头的问题,设计一个精彩的解决方案,最后把这个方案转变成软件。创造软件过程中的一个副产物就是我们需要写出这些代码。
代码是副产物
代码并不是你想象的那么重要。我们喜欢用各种理由说明代码很重要:因为开始写代码就意味着我们开始工作,把方案转化成软件,看起来就像是写代码是过 程同时也是目的。我们谈论开发工具,我们谈论语言选择,我们谈论开发环境。我是这样,你也是,大家都这样。享受这种敲击键盘的手艺似乎无可厚非。可问题在 于,我们需要多方面看问题。代码是精彩的,但它也是敌人,它需要你花时间去写,它很脆弱,它可能晦涩难懂,不是那么健壮。
这就是为什么我一直坚守“写最少的代码”的原因。不论何时当我感到有什么东西比它应该有的体积要大或应该有的情况更复杂,我就会说“写最少的代码”。每次当我写了太多的代码,使得很难维护时,我就重构,整理,所有的时候我都铭记着“写最少的代码”。
我不得不提到一点,有时候我们没有办法避免写出一大堆的代码,如果做不到精简,请保持清晰。写最少的代码就是写整洁的代码。写最少的代码是为了写出整洁的代码。当你对要写的代码精打细算时,你的代码就自然变的很清晰。
那么,我们的启示是什么?我想这最重要的启示是,代码只是副产物,我们在开发过程中不可避免的东西。所以,多思考,多重构,删除老旧的代码,用更新更少的代码替换,为你自己的好,今天就开始吧。