【好书分享】程序员修炼之道-通向务实的最高境界

184 阅读3分钟

整体梗概

这本书整体的内容偏总结一些,因此适合有一定工作经验的人,在年终总结的时候拿出来读一读,做一做自己的复盘。
我在读完这本书之后,并没有按照书本自身的章节来做观点梳理,而是按照从实到虚这种模式重新整理了一下,因此全书可以分成:

  • (拿到事情)项目与团队:第8,9章节
  • (如何做事情)如何编码:第4,5,6,7章节
  • (做好事情的基础素养)素养:第3章节
  • (做事情的底层哲学)哲学与方法:第1,2章节

总而言之,这本书整体就是一个方法论:“务实”。

分章节的主要观点梳理

层次小项核心概念
项目与团队
第9章:务实的项目1. 版本控制,测试,自动化 2. 作品上签名
第8章:项目启动之前1.明确需求 2.识别真正的约束 3.敏捷不是一个名词,有关如何做事
如何编码
第7章:当你编码时1.单测与集成测试. 2.tdd:主要是开发时考虑到如何测试的思想。3: 代码覆盖率与特性覆盖率
第6章:并发1.角色模型,减少耦合。 2.黑板
第5章:宁弯不折1.解耦 只管命令不要询问、不要链式的调用方法、避免全局数据 2.变换式编程 3.继承税 4.配置
第4章:务实的偏执1.无法写出完美的软件 2.接口设计。George去考虑如何实现 3.不要冲出前灯的范围
素养
第3章:基础工具1.人类可理解的文本 2.不要重复.例如:backspace删除。 3.不要恐慌 4.工程日志
哲学与方法
第2章:务实的方法1.优秀设计的精髓:ECT。2.DRY: 邪恶的重复 3.正交性: 直升机噩梦 4.可逆性:一切都在变 5.曳光弹。 6.原型与便签 7.领域语言
第1章:务实的哲学1.人生是你的 2.石头汤 3.知识组合

一些补充思考

  1. 批判性思维 a.问5个为什么 b.谁从中受益 c.基于什么背景 d.接下来还会发生些什么 e:是否存在通用的模型
  2. 优秀设计的精髓:easy to change.
  3. 不管是对银河系搭车客还是对于开发者来说,都应这样:不要恐慌。
  4. 代码覆盖率与特性覆盖率是不一样的。
  5. 处理无法解决的难题:解题的奥秘在于确定真正的约束条件,有些约束是绝对的,有些约束是先入为主的观念。找到真正的框框。
  6. 敏捷的本质:1.个体与互动高于流程与工具。2.工作的软件高于详尽的文档。3.客户合作高于合同谈判。4.响应变化高于遵循计划。