本章主要举例说明了混乱代码的代价以及说明是简洁代码。
一、混乱代码的代价
书中主要通过叙述一个包含混乱代码的项目生命周期以及挣扎过程来说明我们需要为混乱代码所付出的代价,这个举例让我感觉不仅真实,而且熟悉。混乱代码走向如下:
1.系统迭代
由于代码的混乱,每次修改,都是牵一发而动全身,而为了完成修改任务,而不得不往上堆积更多的混乱代码,一次次迭代,混乱代码越来越多,每一次修改牵涉的混乱代码也越多,最终,束手无策。
2.生产力下降
由于代码混乱,导致每次迭代需要耗费大量的工时在梳理处理混乱代码上,团队生产力持续下降,只能通过增加新人来提升生产力,但是新人需要熟悉系统,每次修改又无法完全清楚本身的设计意图,每次新人的增加都会伴随着新的成本输出,最终,通过增加人力的方式也无法进一步提升团队的生产力。
3.重新设计
终于,开发人员无法忍受在令人生厌的代码上进行开发,在一次次的要求下,领导层统一开始投入资源,开启一个全新的替代项目,优秀的人逃脱泥沼参与到新项目的建设,剩余的人则留下来继续维护这不忍直视的项目,直到新项目可以完全替代旧项目
4.新旧轮替
经过二年,三年 甚至10年的新项目建设,新项目也不在是新项目,当初优秀的人也不知了去向,新项目终于也替换了旧项目,然而,它也是如此的不堪入目,现有的人则又要求必须搭建一套新。。。。。
二、什么是整洁代码
书中主要是通过引述一些著名开发人员的话来加以叙述,这里我摘取这些名人的重要话语来说明作者想要表达的观点-什么是整洁代码,每个名人都有着许多头衔,这里我只摘取一个我熟悉的头衔来说明是谁
1.c++语音发明者
我喜欢优雅和高效的代码,代码逻辑应当直接了当,叫缺陷难以隐藏,尽量减少依赖关系,使之便于维护,依据某种分层战略完善错误处理代码,性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来,整洁的代码只做一件事情。
2.《面向对象分析与设计》作者
整洁的代码简单直接,整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直接了当的控制语句
3.Eclipse战略教父
整洁的代码应可由作者之外的开发者阅读和增补,它应当有单元测试和验收测试,他使用有意义的命名。他只提供一种而非多种做一件事的途径。他应有尽量少的依赖关系,而且要明确地定义和提供清晰尽量少的API。代码应通过其字面表达含义,因为不同的语言导致并非所有的必要信息均可通过代码自身清晰表达。
4.修改代码的艺术作者
整洁的代码总是看起来显示某位特别在意他的人写的,几乎没有改变的余地。代码作者什么都想到了,如果你试图对他进行修改,总会回到原点
5.极限编程实施作者
如果同一段代码重复出现,就表示某种想法未在代码中得到良好的体现,尽力去找出来那到底是什么,在尽力更清晰的表达出来。
6.Wiki发明者
如果每个例程都让你感到深合己意,那就是整洁的代码,如果代码让编程语言看起来像是专门为解决那个问题而存在,就可以称之为漂亮的代码。
总结:
在读到本章混乱代码的项目走向时,让我有一种特别熟悉的感觉,让我不禁去回忆之前做过的项目,似乎存在着很多可以回味的共同点。在通过阅读那些大佬说明什么在他们心中是简洁代码时,不仅对什么是整洁代码有了概念,更多的是内心深处好像多了一个感觉,就是开始写像他们说的那样的代码了。