图书介绍
敏捷软件开发 原则、模式与实践 C#版PDF|Epub|txt|kindle电子书版本下载
- (美)马丁著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115239976
- 出版时间:2010
- 标注页数:540页
- 文件大小:115MB
- 文件页数:563页
- 主题词:软件开发;C语言-程序设计
PDF下载
下载说明
敏捷软件开发 原则、模式与实践 C#版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 敏捷开发3
第1章 敏捷实践3
1.1 敏捷联盟4
1.1.1 人和交互重于过程和工具4
1.1.2 可以工作的软件重于面面俱到的文档5
1.1.3 客户合作重于合同谈判5
1.1.4 随时应对变化重于遵循计划6
1.2 原则6
1.3 结论8
1.4 参考文献8
第2章 极限编程概述9
2.1 极限编程实践9
2.1.1 完整团队9
2.1.2 用户故事10
2.1.3 短交付周期10
2.1.4 验收测试10
2.1.5 结对编程11
2.1.6 测试驱动开发11
2.1.7 集体所有12
2.1.8 持续集成12
2.1.9 可持续的开发速度12
2.1.10 开放的工作空间13
2.1.11 计划游戏13
2.1.12 简单设计13
2.1.13 重构14
2.1.14 隐喻14
2.2 结论15
2.3 参考文献15
第3章 计划16
3.1 初始探索17
3.2 发布计划17
3.3 迭代计划18
3.4 定义“完成”18
3.5 任务计划18
3.6 迭代19
3.7 跟踪19
3.8 结论20
3.9 参考文献21
第4章 测试22
4.1 测试驱动开发22
4.1.1 优先设计测试的例子23
4.1.2 测试促使模块之间隔离24
4.1.3 意外获得的解耦合25
4.2 验收测试26
4.3 意外获得的构架27
4.4 结论27
4.5 参考文献28
第5章 重构29
5.1 素数产生程序:一个简单的重构示例30
5.1.1 单元测试31
5.1.2 重构32
5.1.3 最后审视35
5.2 结论38
5.3 参考文献39
第6章 一次编程实践40
6.1 保龄球比赛40
6.2 结论75
第二部分 敏捷设计81
第7章 什么是敏捷设计81
7.1 设计臭味81
7.1.1 设计臭味——腐化软件的气味82
7.1.2 僵化性82
7.1.3 脆弱性82
7.1.4 顽固性82
7.1.5 粘滞性82
7.1.6 不必要的复杂性83
7.1.7 不必要的重复83
7.1.8 晦涩性83
7.2 软件为何会腐化84
7.3 Copy程序84
7.3.1 熟悉的场景84
7.3.2 Copy程序的敏捷设计87
7.4 结论88
7.5 参考文献88
第8章 SRP:单一职责原则89
8.1 定义职责90
8.2 分离耦合的职责91
8.3 持久化92
8.4 结论92
8.5 参考文献92
第9章 OCP:开放-封闭原则93
9.1 OCP概述94
9.2 Shape应用程序95
9.2.1 违反OCP95
9.2.2 遵循OCP97
9.2.3 预测变化和“贴切的”结构98
9.2.4 放置吊钩99
9.2.5 使用抽象获得显式封闭99
9.2.6 使用“数据驱动”的方法获取封闭性100
9.3 结论101
9.4 参考文献101
第10章 LSP:Liskov替换原则102
10.1 违反LSP的情形103
10.1.1 简单例子103
10.1.2 更微妙的违反情形104
10.1.3 实际的例子108
10.2 用提取公共部分的方法代替继承111
10.3 启发式规则和习惯用法113
10.4 结论114
10.5 参考文献114
第11章 DIP:依赖倒置原则115
11.1 层次化116
11.1.1 倒置的接口所有权117
11.1.2 依赖于抽象117
11.2 简单的DIP示例117
11.3 熔炉示例119
11.4 结论121
11.5 参考文献121
第12章 ISP:接口隔离原则122
12.1 接口污染122
12.2 分离客户就是分离接口123
12.3 类接口与对象接口124
12.3.1 使用委托分离接口124
12.3.2 使用多重继承分离接口125
12.4 ATM用户界面的例子126
12.5 结论131
12.6 参考文献131
第13章 写给C#程序员的UML概述132
13.1 类图134
13.2 对象图135
13.3 顺序图136
13.4 协作图136
13.5 状态图137
13.6 结论137
13.7 参考文献137
第14章 使用UML138
14.1 为什么建模138
14.1.1 为什么构建软件模型139
14.1.2 编码前应该构建面面俱到的设计吗139
14.2 有效使用UML139
14.2.1 与他人交流139
14.2.2 脉络图141
14.2.3 项目结束文档142
14.2.4 要保留的和要丢弃的142
14.3 迭代式改进143
14.3.1 行为优先143
14.3.2 检查结构144
14.3.3 想象代码146
14.3.4 图的演化147
14.4 何时以及如何绘制图示147
14.4.1 何时要画图,何时不要画图147
14.4.2 CASE工具148
14.4.3 那么,文档呢149
14.5 结论149
第15章 状态图150
15.1 基础知识150
15.1.1 特定事件151
15.1.2 超状态152
15.1.3 初始伪状态和结束伪状态153
15.2 使用FSM图示153
15.3 结论154
第16章 对象图155
16.1 即时快照155
16.2 主动对象156
16.3 结论159
第17章 用例160
17.1 编写用例160
17.1.1 备选流程161
17.1.2 其他东西呢161
17.2 用例图162
17.3 结论162
17.4 参考文献162
第18章 顺序图163
18.1 基础知识163
18.1.1 对象、生命线、消息及其他164
18.1.2 创建和析构164
18.1.3 简单循环165
18.1.4 时机和场合166
18.2 高级概念168
18.2.1 循环和条件168
18.2.2 耗费时间的消息169
18.2.3 异步消息171
18.2.4 多线程174
18.2.5 主动对象175
18.2.6 向接口发送消息175
18.3 结论175
第19章 类图177
19.1 基础知识177
19.1.1 类177
19.1.2 关联178
19.1.3 继承179
19.2 类图示例180
19.3 细节181
19.3.1 类衍型181
19.3.2 抽象类182
19.3.3 属性183
19.3.4 聚集183
19.3.5 组合184
19.3.6 多重性185
19.3.7 关联衍型186
19.3.8 内嵌类187
19.3.9 关联类187
19.3.10 关联修饰符187
19.4 结论188
19.5 参考文献188
第20章 咖啡的启示189
20.1 Mark IV型专用咖啡机189
20.1.1 规格说明书190
20.1.2 常见的丑陋方案192
20.1.3 虚构的抽象193
20.1.4 改进方案194
20.1.5 实现抽象模型198
20.1.6 这个设计的好处209
20.2 面向对象过度设计214
20.3 参考文献214
第三部分 薪水支付案例研究219
第21章 COMMAND模式和ACTIVE OBJECT模式:多功能与多任务219
21.1 简单的Command220
21.2 事务221
21.2.1 实体上解耦和时间上解耦222
21.2.2 时间上解耦223
21.3 Undo()方法223
21.4 ACTIVE OBJECT模式224
21.5 结论227
21.6 参考文献228
第22章 TEMPLATE METHOD模式和STRATEGY模式:继承和委托229
22.1 TEMPLATE METHOD模式230
22.1.1 滥用模式232
22.1.2 冒泡排序232
22.2 STRATEGY模式235
22.3 结论239
22.4 参考文献239
第23章 FACADE模式和MEDIATOR模式240
23.1 FACADE模式240
23.2 MEDIATOR模式241
23.3 结论243
23.4 参考文献243
第24章 SINGLETON模式和MONOSTATE模式244
24.1 SINGLETON模式245
24.1.1 SINGLETON模式的好处246
24.1.2 SINGLETON模式的代价246
24.1.3 运用SINGLETON模式246
24.2 MONOSTATE模式247
24.2.1 MONOSTATE模式的好处249
24.2.2 MONOSTATE模式的代价249
24.2.3 运用MONOSTATE模式249
24.3 结论253
24.4 参考文献253
第25章 NULL OBJECT模式254
25.1 描述254
25.2 结论256
25.3 参考文献256
第26章 薪水支付案例研究:第一次迭代开始257
26.1 初步的规格说明257
26.2 基于用例分析258
26.2.1 增加新雇员259
26.2.2 删除雇员260
26.2.3 登记考勤卡260
26.2.4 登记销售凭条260
26.2.5 登记工会服务费261
26.2.6 更改雇员明细261
26.2.7 发薪日263
26.3 反思:找出底层的抽象264
26.3.1 雇员支付类别抽象264
26.3.2 支付时间表抽象265
26.3.3 支付方式266
26.3.4 从属关系266
26.4 结论266
26.5 参考文献267
第27章 薪水支付案例研究:实现268
27.1 事务268
27.1.1 增加雇员269
27.1.2 删除雇员273
27.1.3 考勤卡、销售凭条以及服务费用274
27.1.4 更改雇员属性280
27.1.5 犯了什么晕287
27.1.6 支付雇员薪水290
27.1.7 支付领月薪的雇员薪水292
27.1.8 支付钟点工薪水294
27.2 主程序302
27.3 数据库303
27.4 结论304
27.5 关于本章304
27.6 参考文献305
第四部分 打包薪水支付系统308
第28章 包和组件的设计原则308
28.1 包和组件308
28.2 组件的内聚性原则:粒度309
28.2.1 重用-发布等价原则309
28.2.2 共同重用原则310
28.2.3 共同封闭原则311
28.2.4 组件内聚性总结311
28.3 组件的耦合性原则:稳定性311
28.3.1 无环依赖原则311
28.3.2 稳定依赖原则316
28.3.3 稳定抽象原则319
28.4 结论322
第29章 FACTORY模式323
29.1 依赖问题325
29.2 静态类型与动态类型326
29.3 可替换的工厂326
29.4 对测试支架使用对象工厂327
29.5 工厂的重要性328
29.6 结论329
29.7 参考文献329
第30章 薪水支付案例研究:包分析330
30.1 组件结构和符号330
30.2 应用CCP332
30.3 应用REP333
30.4 耦合和封装335
30.5 度量336
30.6 度量薪水支付应用程序337
30.6.1 对象工厂340
30.6.2 重新思考内聚的边界342
30.7 最终的包结构342
30.8 结论345
30.9 参考文献345
第31章 COMPOSITE模式346
31.1 组合命令347
31.2 多重性还是非多重性348
31.3 结论348
第32章 OBSERVER——演化至模式349
32.1 数字时钟350
32.2 OBSERVER模式365
32.2.1 模型365
32.2.2 面向对象设计原则的运用366
32.3 结论366
32.4 参考文献367
第33章 ABSTRACT SERVER模式、ADAPTER模式和BRIDGE模式368
33.1 ABSTRACT SERVER模式369
33.2 ADAPTER模式370
33.2.1 类形式的ADAPTER模式370
33.2.2 调制解调器问题、适配器以及LSP370
33.3 BRIDGE模式374
33.4 结论375
33.5 参考文献376
第34章 PROXY模式和GATEWAY模式:管理第三方API377
34.1 PROXY模式377
34.1.1 实现PROXY模式381
34.1.2 小结391
34.2 数据库、中间件以及其他第三方接口392
34.3 TABLE DATA GATEWAY394
34.3.1 测试和内存TDG399
34.3.2 测试DbGateWay400
34.4 可以用于数据库的其他模式403
34.5 结论404
34.6 参考文献404
第35章 VISITOR模式405
35.1 VISITOR模式406
35.2 ACYCLICVISITOR模式409
35.3 DECORATOR模式418
35.4 EXTENSION OBJECT模式423
35.5 结论432
35.6 参考文献432
第36章 STATE模式433
36.1 嵌套switch/case语句434
36.1.1 内部作用域的状态变量436
36.1.2 测试动作436
36.1.3 代价和收益436
36.2 迁移表437
36.2.1 使用表解释437
36.2.2 代价和收益438
36.3 STATE模式439
36.3.1 STATE模式和STRATEGY模式441
36.3.2 代价和收益442
36.4 状态机编译器442
36.4.1 SMC生成的Turnstile.cs以及其他支持文件443
36.4.2 代价和收益448
36.5 状态机应用的场合448
36.5.1 作为GUI中的高层应用策略448
36.5.2 GUI交互控制器450
36.5.3 分布式处理450
36.6 结论451
36.7 参考文献451
第37章 薪水支付案例研究:数据库452
37.1 构建数据库452
37.2 一个代码设计缺陷453
37.3 增加雇员455
37.4 事务464
37.5 加载Employee对象468
37.6 还有什么工作478
第38章 薪水支付系统用户界面:Model-View-Presenter479
38.1 界面480
38.2 实现481
38.3 构建窗口489
38.4 Payroll窗口495
38.5 真面目504
38.6 结论505
38.7 参考文献505
附录A 双公司记506
Rufus公司:“日落”项目506
Rupert工业公司:“朝阳”项目506
附录B 什么是软件516
索引524