代码整洁是指什么?代码缩进整齐,没有多余的注释,这些是基本要求。本书像之前学过的教材一样,介绍了多位编程领域的科学家对“代码整洁”的理解,比如C++之父。我并不能准确复述出书上的观点和观点的作者,仅凭残存的记忆,能复述多少就写多少。下面是书中介绍的什么是整洁的代码。
一个单元的代码,只做一件事。单元,是指一个函数或方法。
代码的意图要直接了当。写代码的程序员,甚至其他程序员,要能很容易看出代码要做什么。如果代码很难看懂,那么它就是不整洁的代码。今天在工作中,看到我写的一个功能的代码,耗时2个多小时,仍未明白我当初的意图,更别谈修改它了,十分痛苦!
代码要附带有测试它的测试代码。一批代码,若没有提供测试代码,检测其是否正确,这样的代码,是不干净的。
整洁的代码,是不需要改动的代码。添加一句,多余;减少一句,缺少;现有状态,刚刚好。
写整洁的代码,可能需要耗费更多的时间,为什么要写整洁的代码?因为整洁的代码,对程序员有许多好处。
开发经验尚少的我,必须认识到,软件开发行业,大部分的时间和工作,是维护已有的代码,对旧代码做些修补工作,完全从零开始写新代码的机会,比较少。维护代码,必须先读旧代码。旧代码难以读懂,将直接拖慢程序员的工作,甚至会导致程序员加班。
该书作者具有丰富的从业经验,他举出了几个让我震惊的例子。曾经有一个很受欢迎的产品,不少人认为这个产品前景十分美好。出人意料的是,开发这个产品的公司,最终倒闭了。据该公司的员工说,当初为了赶产品进度,代码质量很差,后来,代码越写越多,越来越难维护,每次新加功能,都异常艰难,不能及时推出新功能,最终导致公司倒闭。
什么样的代码,才是整洁的代码?书本向我们展示了多位编程专家的观点,作为读者,应该怎么理解?作者已经预料到了读者的困惑,分享了他的看法。以武术流派为例,世界上有空手道、柔道、截拳道等多种武术,每种武术都有许多学习者。一个门派的弟子,是否应该鄙视其他门派呢?千万不可如此。每种流派,有优点,也有缺点。作为一个学习者,师从一个老师,掌握了一个流派的技能之后,可以再学习其他流派的武术。回到代码整洁这个问题上来,对于不同专家的观点,读者不应该有“非此即彼,非黑即白”态度,而应该认识到每种观点,都有其特定场景下的正确性(这好像是一句正确的废话)。除武术和代码整洁之外,对于许多其他领域的不同观点,都可以用这种方法去看待。
这篇文章,是一篇复述性的读书笔记,内容很不准确。我可以通过摘抄书本,写得很准确。可是这样做有什么意义呢?技术类的书籍,看过之后,吸收了多少(记住了多少),比摘抄了多少,要重要得多,特别是在看过书之后不再回头看的情况下。