当前位置:首页 > 工业技术
浮现式设计  专业软件开发的演进本质
浮现式设计  专业软件开发的演进本质

浮现式设计 专业软件开发的演进本质PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:(美)贝恩著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115259783
  • 页数:279 页
图书介绍:本书的讨论围绕着“专业软件开发的进化本质”这一主题展开,强调了让软件成为一个真正专业的重要性,以及以进化方式开发软件的重大意义。
《浮现式设计 专业软件开发的演进本质》目录

第1章 软件开发这个职业 1

1.1人类制作软件已经有多久的历史了 1

1.2软件开发是一种什么样的活动 2

1.3软件开发缺少了什么 4

1.4谁说了算 6

1.5独特性 6

第2章 从衣橱到探月 8

2.1软件开发中的模式和专业化 8

2.2 Andrea的衣橱 9

2.3探月 13

2.3.1因素的连锁变化 16

2.3.2不同的因素导致不同的设计 16

2.3.3还有更多环境因素 17

2.3.4成本和获益 18

2.3.5火星探险 18

2.4模式的价值 19

2.5小结 20

第3章 软件开发的本质 21

3.1失败率过高 21

3.2成功的定义 22

3.3 Standish Group 23

3.4做了错误的事情 24

3.5做事的方式错了 25

3.6随着时间的推移,软件开发也有所改善 27

3.7一个原因:土木工程的类比 27

3.8放弃希望 29

3.9有时等待和拖延也是必要的 30

3.10桥是硬的,软件是软的 30

3.11我们在变化的海洋中游泳 31

3.12接受变化 31

3.13拥抱变化 32

3.14利用变化 32

3.15 更好的类比:不断演进的系统 34

3.16小结 37

第4章 代码的演进:初级阶段 38

4.1用对象结构来代替过程逻辑 38

4.2面向对象和模式的起源 39

4.3一个示例:简单条件和Proxy模式 40

4.4下一步:多路径条件选择 43

4.5为什么要采用对象结构 45

4.6从多个条件中选择一个 46

4.7小结 46

第5章 使用和发现模式 48

5.1根据上下文进行设计:我做的另一个木匠活 48

5.2模式引出了另一个看问题的角度 55

5.3模式提供了一种讨论设计的语言 55

5.4本书中的模式 56

5.5小结 56

第6章 软件开发金字塔 58

6.1构成专业的元素 58

6.2一种形象的表示 60

6.3小结 60

第7章 注重软件质量 61

7.1封装 62

7.2内聚 62

7.2.1方法内聚 63

7.2.2视角层的内聚 65

7.2.3类内聚 66

7.2.4内聚到何种程度才足够 67

7.3耦合 67

7.3.1有意耦合与意外耦合 68

7.3.2耦合类型 69

7.4冗余 73

7.5可测试性 77

7.6可读性 78

7.7软件的病症 79

7.7.1内聚性较差的信号 79

7.7.2意外耦合或不合逻辑耦合的信号 80

7.7.3冗余的信号 81

7.8小结 81

第8章 注重原则和智慧结晶 83

8.1使用与创建分离 83

8.1.1 Fowler的三层视角 83

8.1.2另一种视角 84

8.1.3使用的视角 85

8.1.4一个单独的视角:创建 86

8.1.5最后考虑构造细节 87

8.1.6回到现实 88

8.2开闭原则 89

8.2.1类级的开闭原则 90

8.2.2方法级的开闭原则 91

8.3依赖倒置原则 92

8.4 GoF的建议 93

8.4.1设计方法的接口 93

8.4.2设计类的接口 94

8.4.3 GoF:优先使用对象聚合而非类继承 95

8.5 GoF:在设计中思考什么应该变化并封装会发生变化的概念 98

8.6小结 100

第9章 注重实践 101

9.1统一编码风格 101

9.1.1注释 102

9.1.2命名类、方法和变量 103

9.1.3编码标准的好处 104

9.2意图导向编程 105

9.3封装构造函数 107

9.3.1原则与实践 110

9.3.2做出决定 110

9.4公共性-可变性分析 111

9.5实践与自由 114

9.6小结 115

第10章 注重纪律:单元测试 116

10.1测试的经济学 116

10.1.1单元测试 117

10.1.2先写测试 119

10.2 JUnit框架 120

10.2.1 JUnit基础知识 121

10.2.2 JUnit示例 122

10.2.3 Rule java:先编码,再测试 122

10.2.4 RuleContainer java:先测试,再编码 128

10.2.5消除冗余:@Before和@After 135

10.2.6自动化批量测试 137

10.2.7异常和单元测试 139

10.3模拟对象 141

10.3.1 MockObject框架 142

10.3.2伪对象 145

10.3.3依赖注入和Endo-Testing技巧 146

10.3.4 Endo-Testing 147

10.4小结 148

第11章 注重纪律:重构 149

11.1重构质量糟糕的代码 150

11.2重构质量优秀的代码 151

11.3结构变化与功能变化 152

11.4重构可帮助你做出选择 153

11.5模式可以成为重构的目标 154

11.6避免重构:预构 154

11.7重构技巧 155

11.8重构遗留代码 162

11.9小结 164

第12章 测试驱动开发 165

12.1何谓测试驱动开发 165

12.1.1测试驱动与先写测试 165

12.1.2从单元测试的角度来设计 166

12.2测试与质量 167

12.2.1测试与内聚 167

12.2.2测试与耦合 168

12.2.3测试与冗余 169

12.3测试驱动开发与模式 169

12.3.1 Strategy模式 169

12.3.2乌龟站在乌龟上,一直向下 170

12.3.3模拟对象/模拟乌龟 171

12.4模拟对象 172

12.5模拟乌龟 174

12.6测试Decorator模式 174

12.7小结 178

第13章 模式与因素 179

13.1在演进的设计中做决策 179

13.2 Christopher Apexander与他所提出的“因素” 180

13.2.1信号处理器示例 180

13.2.2 PKZip示例 184

13.2.3测试与因素 186

13.3更多选择,更多因素 187

13.4小结 190

第14章 浮现式设计:案例分析 191

14.1问题领域:MWave公司 191

14.2团队 192

14.3最简单的能够正常运作的设计 194

14.4新需求:更复杂的机器 196

14.5顺便介绍一下 198

14.6更多好消息 199

14.7小结:设计是一次漫长而奇特的旅行 200

第15章 结束语:展望2020年 202

附录A 演进路径 204

附录B 示例中用到的模式简介 213

附录C 有用幻觉之原理 274

参考书目 279

返回顶部