《敏捷技能修炼 敏捷软件开发与设计的最佳实践》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)AlanShalloway,ScottBain,KenPugh,AmirKolsky著;郑立,邹骏,黄灵译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111395270
  • 页数:186 页
图书介绍:现在敏捷开发已经深入人心了,但敏捷方法依然难于衡量与提高。本书将介绍用于评估和优化个人及团队敏捷实践的已经过证明有效的技巧。通过真实的实例,书中介绍了规则、态度、习惯、技术实践以及各种设计老师,除此炎外,还展示了如何把这些组合在一起以开发出高质量的软件。适合于开发人员、项目经理和项目团队人员阅读。

第一部分 最关键的小舵板 2

第1章 意图导向编程 2

1.1意图导向编程:一个实例 2

1.2优点 4

1.2.1方法的内聚性 5

1.2.2可读性和表达性 5

1.2.3调试 8

1.2.4重构和增强 9

1.2.5单元测试 11

1.2.6更易修改和扩展 13

1.2.7在代码中发现模式 14

1.2.8可迁移的方法 15

1.3小结 16

第2章 分离构造和使用 17

2.1一个重要的问题 17

2.2两种视图 18

2.2.1创建视图 19

2.2.2使用视图 19

2.2.3隐藏的部分更容易改动 20

2.2.4现实的做法 23

2.2.5一些实际的考量因素 25

2.3给你的决策计时 26

2.4重载和C++ 27

2.5自我查验 27

2.6小结 27

第3章 代码未动,测试先行 29

3.1一个小舵板:测试与可测试性 29

3.2什么是测试 29

3.3可测试性和代码质量 30

3.4案例学习:可测试性 31

3.4.1随时应对变化 32

3.4.2青蛙一样的程序员 32

3.5一个关于测试先行的思考 33

3.5.1更好的设计 35

3.5.2更清晰的范围和避免不必要的工作 35

3.5.3降低复杂性 36

3.5.4其他优势 36

3.5.5没有例外 37

3.6小结 37

第4章Shalloway法则和Shalloway原则 38

4.1冗余的种类 38

4.1.1复制和粘贴 39

4.1.2“魔法”数字 39

4.1.3其他类型 39

4.2重新定义冗余 39

4.3其他形式的冗余 40

4.4设计模式在减少冗余时扮演的角色 41

4.5很少有开发人员花费大量的时间去“修改”代码错误 41

4.6冗余对代码质量其他方面的影响 43

4.7小结 45

第5章 封装 46

5.1未封装的代码:对全局变量的破坏 46

5.2成员标志的封装 47

5.3自封装成员 49

5.4预防代码更改 50

5.5封装引用对象的难点 51

5.6用get()来打破封装 54

5.7对象类型的封装 56

5.8设计的封装 58

5.9各个层次的封装 60

5.10实用性建议:把困难封装起来 61

5.11小结 63

第6章 面向接口的设计 64

6.1针对接口的设计 64

6.2接口的定义 64

6.3接口约定 65

6.4分离不同的视图 66

6.5接口的模拟实现 68

6.6让接口保持简单 68

6.7避免过早采用继承体系 69

6.8接口和抽象类 70

6.9依赖反转原则 71

6.10多态性概述 71

6.11不是每个类都需要接口 72

6.12小结 73

第7章 验收测试驱动开发 74

7.1两种开发流程 74

7.2验收测试 76

7.3一个关于验收测试的实例 77

7.4实现验收测试 78

7.4.1针对用户界面的测试脚本 78

7.4.2测试用户界面 79

7.4.3 XUnit测试 81

7.4.4验收测试框架 81

7.4.5四种方法间的联系 82

7.5一个练习 82

7.6如果客户不告诉你怎么做的时候,你应该怎么办 83

7.7小结 83

第二部分 基本态度 86

第8章 避免过度设计或设计不足 86

8.1给开发人员的箴言 86

8.2代码质量病理学 87

8.3避免过度设计或设计不足 88

8.4把复杂度和返工最小化 88

8.5永不把代码变得更糟/仅在有目的情况下降低代码质量 89

8.6使代码容易修改,足够强大健壮,适应变化并安全可靠 89

8.7在非面向对象的代码或遗留系统里编写易于修改代码的策略 90

8.8小结 93

第9章 持续集成 94

9.1建立源代码分支 94

9.1.1多版本:特殊分支 95

9.1.2孤立地工作:开发分支 96

9.1.3问题、解决方案、新的问题 98

9.2将主干内容合并回分支 99

9.3测试驱动开发与合并成本 100

9.4持续集成 102

9.5持续集成服务器 103

9.6小结 104

第三部分 设计问题 108

第10章 共性和可变性分析 108

10.1用动词和名词来做指南:警告,前面有危险 108

10.2真正的问题是什么 111

10.3我们所需要知道的 111

10.4共性和可变性分析 112

10.4.1共性分析 113

10.4.2可变性分析 113

10.4.3面向对象设计“一箭三雕” 113

10.5发掘对象的新范式 114

10.6分析矩阵:一个用例学习 115

10.7小结 122

第11章 以开放关闭原则为目标的重构 123

11.1开放关闭原则 123

11.1.1从开放关闭原则引申到其他 126

11.1.2开放关闭原则是一个“原则” 127

11.2重构 129

11.2.1为何重构 130

11.2.2负债还是投资 130

11.2.3重构和遗留系统 131

11.2.4以开放关闭原则为目标的重构 132

11.2.5“及时”设计 134

11.3小结 136

第12章 需求与功能接口 137

12.1迪米特法则 137

12.2耦合,可恶的耦合,还有依赖 139

12.2.1耦合和可测试性 140

12.2.2需求与功能 141

12.3理想的分离方案:需求接口和功能接口 142

12.4回到迪米特法则 143

12.5小结 145

第13章 何时以及如何使用继承 147

13.1“四人组” 147

13.2初始向量,最终结果 149

13.3优先委托 151

13.4使用继承与使用委托 152

13.5继承的使用 154

13.6可扩展性 156

13.7在敏捷开发里应用四人组的训诫 156

13.8测试问题 157

13.9更多 158

第四部分 附录 160

附录A统一建模语言概览 160

附录B代码质量 169

附录C封装原始数据类型 178