Robert C.Martin 著
第1章 专业主义
1.1 清楚你要什么
专业主义:它不但象征着荣誉与骄傲,而且明确意味着责任义务与担当。
1.3 首先,不行损害之事
1.3.1 不要破坏软件功能
写一些随时都能运行的单元测试,然后尽可能多地执行这些测试。测试覆盖率尽可能为100%。
1.3.2 不要破坏结构
- 结构良好的代码更灵活。以牺牲结构为代价,得不偿失,将来必追悔莫及。
- 如果希望自己的软件灵活可变,那就应该时常修改它!
- 有种策略叫“无情重构”:对每个模块,每检入一次代码,就要让它比上次检出时变得更简洁。每次读代码,都别忘了进行点滴的改善。
- 对待代码,就如同雕塑家对待泥巴那样,要对它进行不断的变形与塑造。
1.4.1 了解你的领域
- 设计模式。GOF 24种。
- 设计原则。SOLID原则,组件设计原则。
1.4.3 练习
每日10分钟卡塔。
第2章 说不
- 专业人士敢于说明真相而不屈从于权势。
- 只有敢于说不,才能真正做成一些事情。
2.1 对抗角色
最好的结果是你和你的经理追求共同的目标。最关键的是要找到那个共同目标,而这往往有赖于协商。
2.2 高风险时刻
- 最要说“不”的是那些高风险的关键时刻。越是关键时刻,“不”字就越具价值。
2.4 说“是”的成本
- 有时候,获取正确决策的唯一途径,便是勇敢无畏地说出“不”字。
2.5 如何写出好代码
- 想成为风云为物或救世主有时会让你做出一些不专业的行为
- 专业人士之所以成为英雄为物,是因为他们出色地完成了任务,不但按时而且符合预算。
第3章 说是
3.3 结论
专业人士不需要对所有请求都回答“是”。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。
第4章 编码
4.2.2 中断
- 结对是应对中断的一种好方法。结对搭档能够维护住中断处的上下文。
- 另一种很有帮助的采用TDD。失败的测试能帮你维护住编码进行的上下文。
4.3 阻塞
- 创造性输出依赖于创造性输入。