1. 代码质量与其整洁度成正比
  2. 干净的代码
  3. 本书适用于有志于改善代码质量的程序员及技术经理
  4. 丹麦谚语:“小处诚实非小事。”
  5. 神在细节之中
  6. 什么是敏捷软件开发?
  7. TDD,测试驱动开发(Test Driven Development)
  8. 借喻:
    (1)架构:建筑师交付毛坯房一般交付初始软件产品。
    (2)Scrum:装配线式的日本骑车生产方式。
  9. 对于汽车工业和软件,大量的工作并不在于生产而在于维护(也就是修修补补),或避免维护。
  10. 1951年,一种名为“全员生产维护”(Total Poductive Maintenance)的质量保证手段在日本出来先,它关注维护甚于生产。其主要只煮之一是5S原则体系。
  11. 良好的软件实践遵循这些规程:专注、镇定和思考。
  12. 5S哲学
    (1)整理sort:搞清事物之所在,合适的命名标识。
    (2)整顿Seiton:(整齐),物皆有其位,而后物皆归其位。(A place for everything, and everything in its place.)
    (3)清楚shine:实现代码的自我注释
    (4)清洁:标准化
    (5)身美:自律,在实践中贯彻规程,并时时体现于个人工作上,而且要乐于改进。
  13. 要关注产品的生命周期。
  14. 干活的四个层次:
    (1)等到错误出现再去维修。
    (2)更上一层楼,每天检查机械,在磨损机件停止工作之前就换掉它。
    (3)一开始就打造更易维护的机械。
    (4)终极实践:关注用全新机械替代旧机械。(每7年就重做一次软件的主要模块,清理缓慢陈腐的代码。)
  15. 认真对待每个变量名,你当用为自己第一个孩子命名般的谨慎来给变量命名。
  16. 每首诗歌都无写完之时,得持续重写,直至放弃为止。
  17. 全心倾注于细节,屡见于追求卓越的行为之中。
  18. 他们居然通过简单地保持一致缩进风格创造了价值。
  19. 质量是上百万次全新投入的结果——而非仅归功于任何来自天堂的伟大方法。这些行为简单却不简陋,也不意味着简易。相反,他们是人力所能达的不仅伟大而且美丽的造物。
  20. “代码即设计”、“简单代码”
  21. 我们应当视代码为设计——作为过程而非终点的设计——这种高尚行为的漂亮表现。耦合与内聚的架构在代码中脉动。
  22. 无论架构还是代码都不强求完美,只求竭诚尽力而已。
  23. To err is human; to forgive, divine.人孰无过,神亦容之。在Scrum中,我们使一切可见。我们晾出脏衣服。我们坦承代码状态,因为它永不完美。我们日渐成为完整的人,配得起神的眷顾,也越来越接近细节中的伟大之处。
  24. 假使干净的地板能减少事故发生,假使归置到位的工具能提升生产力,我也会倾力左到。
  25. 对高瞻远瞩的练习也已结束,我要去清理自己的书桌了。
  26. 写整洁的代码需要遵循大量的小技巧。
  27. 作者阐述了在命名、函数、注释、代码格式、对象和数据结构、错误处理、边界问题、单元测试、类、系统、并发编程等方面如何做到整洁的经验和最佳实践。
  28. 代码感。
  29. 展示了Bob本人对3个Java项目的剖析与改进过程的实操记录。
  30. Test Obsessed(沉迷测试)
  31. 我做出了写出整洁代码的承诺。
  32. craftsmanship
  33. 习艺之要有二:知和行。你应当习得有关原则、模式和实践的知识,穷尽应知之事,并且要对其了如执掌,通过刻苦实践掌握它。(就像其自行车和游泳一样,唯有实践。)
  34. 阅读本书需要自己实践,体验自己的失败,还需要观察他人的实践与失败。
  35. 阅读本书需要你非常的用功,如何用功?阅读大量的代码。
    然后去琢磨某端代码好在什么地方、坏在什么地方?是如何分解、和组合模块的?
  36. 本书分为3个部分:
    第一部分:介绍编写整洁代码的原则、模式和实践。
    第二部分:介绍几个复杂性不断增加的安利研究
    第三部分:列出上述案例研究中得到的启示和灵感。
  37. 我们尝试去理解自己对阅读和修改代码的反应,尽力了解为什么会有这样的感受,为什么如此行事。结果得到了一套描述在编写、阅读、清理代码时思维方式的知识库。
  38. 花时间琢磨那些案例,以作者的思维路径考虑问题,自行车就如同其身体延申部分一样,而不再是“感觉不错”的知识。

第一章:

1. 代码永存

  1. 人类模糊的感觉人类自己又是都理解不了,所以不太能产出能满足人类模糊需求和感觉的写代码机器,那得机器透彻地理解人类才行。
  2. 代码即规约的一种,规约永存。

2. 烂代码就像沼泽一样,我们要关注代码的整个生命周期。

3. Later equals never.(不要写个烂程序然后说,等等再修缮)

4. 花时间保持代码整洁不但有关效率,还有关生存。

5. 赶上期限的唯一方法——做得快的唯一方法——就是始终尽可能保持代码整洁。

6.优雅的代码:外表或举止上令人愉悦的优雅和美观;令人愉悦的精致和简单。(划重点:令人愉悦)

7. 破窗效应:一扇破损的窗户开辟了大厦走向倾颓的道路。

8.整洁的代码只做好一件事,糟糕的代码想做太多事,它意图混乱、目的含混。整洁的代码力求集中。每个函数、每个类和每个模块都全神贯注于一事,完全不受四周细节的干扰和污染。(人也是如此)

9.什么是整洁的代码?
①优雅高效②直截了当、干净利落的代码逻辑③减少依赖关系④整洁的代码只做好一件事(意图明确)⑤可读性高⑥可由作者之外的开发者阅读和增补⑦应有单元测试和验收测试⑧代码应在字面上表达其含义,即“字面编程”。⑨整洁的代码总是看起来像是某位特别在意它的人写的,几乎没有改进的余地。代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码——全心投入的某人留下的代码。

10. 不要重复代码、只做一件事、表达力、小规模抽象。

11. 我们是作者,写代码的时候记得自己是作者,要为评判你工作的读者写代码。

12. 让代码更易读:在写代码的时候,读与写的比例超过10:1。写新代码时,我们一直在读旧代码。既然比例如此之高,我们就想让读的过程变得轻松,即使那会使得编写过程更难。没可能光读不写,所以使之易读实际也使之易写。不读周边代码的化就没法写代码,编写代码的难度,取决于读周边代码的难度。

13. 军规:“让营地比你来时更干净。”
改好一个变量名、拆分一个有点过长的函数、消除一点点重复代码、清理一个嵌套if语句。

14.持续改进是专业性的内在组成部分。

《Clean Code》读书笔记-1相关推荐

  1. 《Cloud Native Data Center Network》读书笔记-1

    <Cloud Native Data Center Network>读书笔记-1 2019年的一本书,云原生数据中心网络入门书籍,作者 Dinesh G. Dutt 是一家网络公司的首席科 ...

  2. 《Cloud Native Data Center Network》读书笔记-7

    第九章 数据中心边缘 9.1 问题 Clos与外部的连接 为什么需要进行外部连接? 连接到外部世界的带宽需求是什么? 数据中心网络将连接到什么上游设备? 穿越内外部世界的交通需要哪些服务? 9.2 连 ...

  3. 论文阅读——译文:PortLand:A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric

    论文标题:PortLand:A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric 会议:sigcom 09 Ref:Radhika ...

  4. Fat-tree:A Scalable, Commodity Data Center Network Architecture 解读

    Fat-tree:A Scalable, Commodity Data Center Network Architecture 解读 title: 一种可扩展的.商品化的数据中心网络体系结构 第一部分 ...

  5. 《Data Algorithm》读书笔记十一— 使用马尔科夫模型的智能邮件营销

    <Data Algorithm>读书笔记十一 - 使用马尔科夫模型的智能邮件营销 1. 智能邮件营销 是什么? 根据顾客的交易历史观测(其实就是推测) "下一个智能邮件营销日期& ...

  6. 《Advanced Data Structures》读书笔记

    1.基础数据结构 1.1.栈 1.2.队列 1.3 双端队列 1.4.动态分配节点 1.5.数组类的"阴影拷贝" 2.搜索树 3.平衡搜索树 4.区间集合 5.堆 6.并查集 7. ...

  7. 最新发布| Jira官宣中国区本地部署特殊政策,公布Data Center价格

    ​Atlassian官方发布Jira Server版停售消息至今已3个月,面对中国区用户的抗议,官方终于于2021年2月2日推出针对性政策,即将DC版准入门槛从500人下调至25人,并于2月5日召开发 ...

  8. 《Python神经网络编程(Make Your Own Neural Network)》读书笔记

    声明 这是作者在CSDN上的第二篇博客,关于阅读塔里克·拉希德的著作<Python神经网络编程(Make Your Own Neural Network)>之后的读书笔记.跟诸位大牛相比, ...

  9. Analyzing Neural Time Series Data 读书笔记6

    Analyzing Neural Time Series Data 第六章读书笔记 仅做学习记录 6 Practicalities of EEG Measurement and Experiment ...

  10. Analyzing Neural Time Series Data 读书笔记3

    Analyzing Neural Time Series Data 第三章读书笔记 仅做学习记录 3 Interpreting and Asking Questions about Time-Freq ...

最新文章

  1. Oracle 性能相关常用脚本(SQL)
  2. sip 时序图_时序图怎么看_教你如何看懂时序图 - 什么是时序图_时序图怎么看_教你如何看懂时序图...
  3. 【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )
  4. 【Java基础】一篇文章读懂多线程
  5. 反射型XSS漏洞的条件+类型+危害+解决
  6. ***学习笔记教程五:***技术
  7. vue 安装 less_解决旧Vue项目升级less-loader 6.0.0报错
  8. Oracle 12c 安装及配置
  9. JavaScript自定义事件
  10. Webpack 中 css import 使用 alias 相对路径
  11. java中注释如何换行,java注释中空格和换行符的处理
  12. MySQL数据库左右连接
  13. 以比例阀控制为例详解PI控制参数设计(附参数设计代码)
  14. 记录一次idea因为虚拟内存不足而闪退的经历
  15. Vue项目打包部署到七牛CDN
  16. java mac地址 加冒号_Mac加减法,Mac地址加1,Mac地址减1
  17. word,ppt等office文档转化为pdf进行展示(POI + iText)(亲测有效)
  18. 2023计算机毕业设计SSM最新选题之java公交电子站牌管理系统软件9430l
  19. Python笔记相关
  20. 论文阅读:Gradient-Induced Co-Saliency Detection(ECCV2020)

热门文章

  1. webpack和babel的区别
  2. MyBatis官方文档-Java API
  3. 2022.11.7 英语背诵
  4. 谁不曾辜负或被辜负?
  5. 在博客园的文章中使用AJAX
  6. python数组展示_python 显示数组全部元素的方法
  7. 公司CEO,利用恶意邮件部署勒索软件
  8. Android 沉浸状态栏
  9. java—set创建迭代器的两个方法
  10. 一一计划(Day 14)邻接表法存储图,BFS广度优先遍历,DFS深度优先遍历