整体梗概
这本书整体的内容偏总结一些,因此适合有一定工作经验的人,在年终总结的时候拿出来读一读,做一做自己的复盘。
我在读完这本书之后,并没有按照书本自身的章节来做观点梳理,而是按照从实到虚这种模式重新整理了一下,因此全书可以分成:
- (拿到事情)项目与团队:第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.知识组合 |
一些补充思考
- 批判性思维 a.问5个为什么 b.谁从中受益 c.基于什么背景 d.接下来还会发生些什么 e:是否存在通用的模型
- 优秀设计的精髓:easy to change.
- 不管是对银河系搭车客还是对于开发者来说,都应这样:不要恐慌。
- 代码覆盖率与特性覆盖率是不一样的。
- 处理无法解决的难题:解题的奥秘在于确定真正的约束条件,有些约束是绝对的,有些约束是先入为主的观念。找到真正的框框。
- 敏捷的本质:1.个体与互动高于流程与工具。2.工作的软件高于详尽的文档。3.客户合作高于合同谈判。4.响应变化高于遵循计划。