写代码的最高境界:能不写则不写、能少些则少些
在2012年的时候,笔者写过这样一篇文章: Write Less Code,在当时还不错,但是在那之后,我在PageCloud工作,两年之后,再回过头来看这篇文章,现在,带着两年的思考和经验(希望如此),对这篇文章重新修改。
软件开发的基本真理就是写代码。不过最大谬论之一就是为工作而写代码。当我第一次开始写代码的时候就落入了这个陷阱。编写代码是一件很棒的事情。敲打键盘让自己有成就
感,就想正在完成自己的梦想。但是这些年,我学到的东西则更重要——作为软件开发者尽可能写更少的代码。
别误会,我的理解,我们不应该将自己置身于编写代码,或者敲打让人难以理解的代码情境中。事实上,花一点时间思考,我们会发现, 我们大多数的时间,都用来维护代码。编写更少的代码,而不是为自己创造更多的工作看起来像是一个相当好的主意。
为什么?
多看看,我的使用工具,使用的框架。我做的所有的事情,用的所有的工具,都是为了写更少的代码。使用工具为了减少代码中的错误,让你走更少的弯路。
那么,为什么要写更少的代码呢?之前,我说你的工作是写更少的代码,而今看来,那时候,我是错的。实际上,你的工作是 思考,是思考遇到的问题,找到一个可靠的方法并把它用到软件开发中去。开发软件的一个副产物就是我们不得不写代码来解决问题。
代码意味着结束
代码没那么重要。我们喜欢说服自己,我们正在开始执行、并把我们的解决方案放入软件中。这样看来,代码既是一种方式也意味着结束。我们谈论自己所用的编辑器,谈论我们最喜欢的编程语言,谈论使用环境。每个人都在谈论,享受自己的工作,没什么不好意思的。重点是你是否专注。代码很棒,但他也可能是敌人。及时我们花很多时间去写,他也可能很脆弱,不够清楚,甚至不够稳定。
这就是为什么我要说的”Write less code”。无论何时,我觉得这个项目或者代码块变得比想象中大、复杂,我就会想到”写更少的代码”。无论何时,我写了多少代码,甚至写了一页又一页,我重构他,我重写他,同时思考”写更少的代码”。
有时候,如果不能写出简洁、干净的代码,对自己来说,写一堆代码就是很痛苦的事情。写更少的代码就是写干净清晰的代码。当你”节约代码”的时候,就意味着,你在写更少的代码,意味着你写代码的目的就是让他变得简洁。
那么,我从中学到了什么?我认为写完代码就意味着结束,在软件开发中解决各式各样的问题就不可避免。所以多思考,重构、删除以前的老代码,并且使用更少代码编写新代码。
不要犹豫,从今天开始,就这样做。