Osheep

时光不回头,当下最重要。

CLEAN CODE 第一章 笔记

第一章 整洁代码

1.1要有代码

我们永远抛不掉代码,因为代码呈现了需求的细节,这些细节无法被忽略或者抽象。
我们可以创造帮助把需求解析和汇整为正式结构的各种工具,然而,我们永远无法抛弃必要的精确性——所以,代码永存。

1.2糟糕的代码

有家公司推出了一个“杀手”应用,他们赶着推出产品,代码写的乱七八糟,特性越加越多,代码越写越烂。最后终于无法管理这些代码,关门大吉了。是糟糕的代码毁了这家公司
为什么要写糟糕的代码呢?
快点完成?赶时间?
这是自己亲手造成的混乱,如果弃之不顾。走向新的一天,我们看到自己的烂程序居然能运行,想着烂代码总比什么都没有强。说有朝一日会回头清理。但是,稍后等于永不

1.3混乱的代价

随着混乱的增加,团队生产力会持续下降,而且趋向于零。当生产力下降,管理层会增加更多的人手到项目中,期望提高生产力。
//在软件开发团队,1 + 1 < 2,因为沟通是需要成本的。
加入新项目,新人不熟悉,而且背负着提高生产力的压力,所以会制造更多的混乱。驱动生产力向零不断下降

1.3.1华丽新设计

开发团队向管理层反馈,无法在烂的代码上做开发了,要做全新的设计。管理层最终也会由于生产力的低下,授权一个华丽的新设计。
然后组建一支新军(新的开发团队),新项目要实现旧项目的所有功能,而且要跟得上旧系统的持续改动。旧的队伍继续维护现有的系统,两支队伍开始竞赛。在新系统功能代替旧系统功能之前,管理层不会换掉旧系统。
竞赛可能会延续很长时间,我(作者)见过十年之久的。
所以,花时间保持整洁的代码不但有关于效率,还有关生存

1.3.2态度

要用很高的热情去维护代码,不能为了进度去降低代码质量。不然可能会花掉几星期去修改本来只需要几小时即可完成的任务。
就像病人告诉医生为了节省时间在手术前别洗手一样,医生不会听的,因为医生更了解疾病和感染的风险。如果听了医生病人的话,就是一种不专业的态度。
程序员遵从不了解混乱风险的经理的意愿,就是不专业的做法(直接让经理去看cleanCode)

1.3.3谜题

程序员知道之前的混乱会拖自己的后腿,但又无奈于期限的压力,只能制造混乱。
实质上,制造的混乱无助于赶上期限。混乱会立刻拖慢你,叫你错过期限。
//期限在软件公司重视程度很高,比如微软,你只要一次错过期限,那就别来上班了
赶上期限的唯一做法——始终尽可能保持代码的整洁

1.3.4整洁代码的艺术

代码就像绘画,编写整洁代码的程序员就像艺术家

1.3.5什么是整洁代码

各位业界大咖对整洁代码的看法

高效和优秀的代码

  • 逻辑直截了当,让缺陷难以隐藏,减少依赖关系,使之便于维护。
  • 可以完善处理错误代码
  • 性能调到最优
    整洁代码读起来让人心情愉悦,就像见到了精良的设计。
    避免破窗效应,及时修改代码错误,以免造成更多错误。
    对于错误代码,要从细节上花心思。
    整洁代码
  • 简单直接
  • 像优美的散文
  • 不隐藏设计者的意图
  • 干净利落的抽象和直截了当的控制语句
    整洁代码
  • 可由作者之外的开发者阅读和增补
  • 有单元测试和验收测试
  • 使用有意义的命名
  • 代码应该通过它的字面表达清晰的含义(必要信息)
    整洁代码
  • 像是特别在意代码的某个人写的
  • 几乎没有改进的余地
  • 全心全意投入所留下的代码
    整洁代码
  • 能通过所有测试
  • 没有重复代码
  • 体现系统中的全部设计理念
  • 尽量少的实体,比如类,方法,函数等
    整洁代码
  • 每个历程都让人感到深合己意
  • 代码让编程语言看起来像是专门为了解决那个问题的存在

1.4思想流派

通过本书,会学到整洁变量名、函数、类,学会如何编写整洁而专业的代码。
本书列出的建议,是从长久苦思、数十年的从业经验和无数尝试与错误中得来的。

1.5我们是作者

写代码的时候,记得自己是作者。
读与写话费的时间的比例超过10:1,在写新代码的时候,我们一直在读旧代码。
既然读的比例如此之高,那就要使其更加易读,即使那会增加编程难度。
要想轻松的写代码,就要先让代码更加易读。

1.6童子军军规

只是把代码写好远远不够,需要时刻保持代码整洁
代码会随着时间的流逝而腐坏,我们要阻止腐坏
美国童子军军规:让营地比你来时更干净

1.7前传与原则

1.8小结

本书不能保证读过之后就能变成艺术家,但会告诉你其他艺术家所使用的工具、技术和思维过程。
本书充满细节,是一本艺术书。可以看到好的代码,也会看到糟糕的代码,可以看到坏代码如何转化为好代码。有很多例子,看到后会有所启发。
长者看了看小提琴家,又看了看他手中的琴,说道:“你还得练,孩子,还得练!”

1.9文献

点赞