知道什么时候可以少写或者不写代码可能对于一个程序员来讲是他所要学习的最重要的技巧之一。你所写的每一行代码都是要维护的,会给自己、系统和未来的人带来额外的负担,因此,在任何情况下,少写无用代码的程序员,都能算作行业里的道德楷模。
简单来说,要保持代码的精简节约,可以通过以下几个途径。
- 重新考虑需求,不要过度设计
- 回顾修改代码,保持代码简洁
- 经常性地通读标准库的整个API,保持对它们的熟悉程度。
质疑和拆分需求
不是所有的程序都需要运行得快,100%准确,并且能处理所有的输入。如果你真的仔细检查你的需求,有时你可以把它削减成一个简单的问题,只需要较少的代码就可以实现。不需要在一开始就考虑所有的可能性,因为其中可能有80%以上的可能通过抛出简单的异常就能完全处理掉,你只需要实现和业务有关的20%中很少的一部分就可以。
“减少需求”和“解决简单的问题”是把需求转换为最小化代码的不二法门。需求常常以微妙的方式互相影响。这意味着解决一半的问题可能只需要花四分之一的工夫。
回顾和管理代码
项目的增长,项目目录中会不断加进越来越多的源文件。很快就需要多个目录来组织它们了。很难再记得哪个函数调用了哪个函数,跟踪bug要做的工作也会越来越多。
园丁经常修剪植物以让它们活着并且生长。同样地,要保持代码库的精简,就必须不时修剪掉碍事和没用的代码。比如,最初设计的多语言i18n功能,如果从来没有用掉过多语言,那为什么不去掉呢?
熟悉你周边的库
程序员中有两句老生常谈的话,一句是“不要重复发明轮子”,一句是“不要重复你自己”。但知易行难,这两点也可能是程序员最常犯的错误。
前一个问题的根源在于我们往往很难知道世界上有我们需要的轮子存在,因此动辄就要自己上手发明轮子。要避免这种情况,就要不断了解和熟悉身边的库。以JavaScript为例,nodejs标准库,npm库以及github流行的项目,都是储存轮子的宝库,能挖掘多少,就能解放自己多少生产力。
后一个问题同样可以构建自己的库来解决,通过抽象和封装,“让轮子滚动起来”,才能从根本上解决重复自己的问题。也才能通过不断打磨,让自己的轮子更加精简。