敏捷软件开发

敏捷软件开发 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:Robert C. Martin
出品人:
页数:538
译者:邓辉
出版时间:2013-1
价格:79.00元
装帧:平装
isbn号码:9787115294685
丛书系列:软件开发方法学精选系列
图书标签:
  • 设计模式
  • 软件工程
  • 敏捷
  • 软件开发
  • 计算机
  • 敏捷开发
  • C
  • #面向对象
  • 敏捷开发
  • 软件工程
  • 项目管理
  • Scrum
  • XP
  • 迭代开发
  • 需求分析
  • 软件质量
  • 团队协作
  • 精益开发
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

Robert C. Martin、Micah Martin编著的《敏捷软件开发》中深入而生动地使用真实案例讲解了面向对象设计的基本原则、重要的设计模式、UML和敏捷方法。第一部分,从敏捷开发的介绍起,讲解了敏捷联盟宣言,提供了对极限编程(XP)的概述,讨论了许多阐明个别极限编程实践的小案例,特别是那些影响设计和编写代码方式的实践。第二部分主要谈论了面向对象软件设计:什么是面向对象软件设计,管理复杂性的问题以及技术,面向对象类设计的一些原则。研究了薪水支付案例及打包薪水支付系统,并深入讲述了薪水支付应用的数据库和UI设计。

作者简介

目录信息

《敏捷软件开发:原则、模式与实践(c#版·修订版)》
第一部分 敏捷开发
第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
第二部分 敏捷设计
第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 违反ocp 95
9.2.2 遵循ocp 97
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章 使用uml 138
14.1 为什么建模 138
14.1.1 为什么构建软件模型 139
14.1.2 编码前应该构建面面俱到的设计吗 139
14.2 有效使用uml 139
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
第三部分 薪水支付案例研究
第21章 command模式和active object模式:多功能与多任务 219
21.1 简单的command 220
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
第四部分 打包薪水支付系统
第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 应用ccp 332
30.3 应用rep 333
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 调制解调器问题、适配器以及lsp 370
33.3 bridge模式 374
33.4 结论 375
33.5 参考文献 376
第34章 proxy模式和gateway模式:管理第三方api 377
34.1 proxy模式 377
34.1.1 实现proxy模式 381
34.1.2 小结 391
34.2 数据库、中间件以及其他第三方接口 392
34.3 table data gateway 394
34.3.1 测试和内存tdg 399
34.3.2 测试dbgateway 400
34.4 可以用于数据库的其他模式 403
34.5 结论 404
34.6 参考文献 404
第35章 visitor模式 405
35.1 visitor模式 406
35.2 acyclic visitor模式 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-presenter 479
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
· · · · · · (收起)

读后感

评分

评分

介绍面向对象设计原则、设计模式、包原则等方面的内容写的非常好,挺容易理解的。比其他类型的书讲的更透。后面介绍项目的就非常晦涩难懂了。也不知道是作者说的不清楚还是翻译的问题,亦或者是我水平的问题,反正看的非常焦躁。有些话感觉是个人都看不懂。 介绍面向对象设计原...  

评分

果然是获奖无数的巨著,条理清晰,把软件工程,设计模式及面向对象开发思想很好的融合到实践中去 对每一个观点,都有手把手的展开例子,不止是教怎么做,更多的篇幅是在介绍为什么要这么做,这么做解决了哪些问题,另外可能会引入什么新的问题 之前的设计模式那些书,重点篇...  

评分

帮助理解设计原则,例子不错,比很多设计模式的书好理解很多,有例子代码对比,容易理解为何这样设计,解决知其然而不知其所以然的问题。 计划多读几遍,充分理解变成自己的习惯。10多年前打印过,一直未认真读,很遗憾啊。觉得国内软件水平落后10年啊,发现最近几年开源流行,...  

评分

孟岩为这本书写了一个代序.这个代序很长,有两页半,其中一页半用来讲述孟岩本人和这本书的感情纠葛. 我为大家复述一下这段感人至深的故事.下面孟先生代表孟岩,小doocaubm和Asd代表什么,请您自己判断. 2001年秋天,北京,孟先生那时候已经颇有些成就了,见识也颇有些广泛了,但是他...  

用户评价

评分

关于作者的语气和态度,这本书给我留下了最强烈的负面印象。它散发着一种近乎傲慢的“过来人”姿态,仿佛他所说的每一个字都是不容置疑的真理,而任何与此相悖的实践或观点,都是因为实践者不够聪明或者不够努力。书中对所有失败案例的归因,几乎都指向了内部执行力的不足,而对外部环境的复杂性、市场突变、资源限制等客观因素,则轻描淡写地一笔带过,仿佛这些都是弱者寻找借口的托词。这种“成功学”式的绝对化论调,在快速变化的世界里是极其危险的。我更欣赏那些能够坦诚讨论局限性、承认“情境依赖性”的作者。这本书缺乏对自身理论局限性的审视,显得片面且教条。阅读过程中,我感觉自己不是在与一位睿智的导师对话,而是在被一位过于自信的演说家说服,这种单向的灌输,使得我对全书的接受度大大降低,很多观点即便有其合理性,也因为其表达方式而打了折扣,最终让人只想尽快合上封面,去寻找更具思辨性的材料。

评分

这本书的封面设计简直是视觉的享受,那种深邃的蓝色调配上简洁有力的金色字体,初次翻开时,我就被一种沉静而又充满力量的感觉所吸引。内页的纸张质感也相当出色,摸上去有一种温润的触感,长时间阅读下来眼睛也不会感到疲劳,看得出出版方在细节上确实下了不少功夫。不过,我得坦白,这本书的内容似乎并不像它的装帧那样直击人心。我期待的是一场思想的碰撞,或者至少是某个领域内前沿观点的深入探讨,然而我看到的更多是较为宽泛的叙事和一些我已经耳熟能详的概念的重新排列组合。章节之间的过渡显得有些生硬,仿佛是拼凑起来的几个讲座稿,缺乏一个贯穿始终的、引人入胜的主线索。特别是关于“创新”的那一章,作者引用的案例都过于老套,没有提供任何新的分析视角,读起来就像是在翻阅一本过时的教科书,让我不禁怀疑自己是否选错了阅读目标。我原本希望它能带我进入一个全新的思维空间,但现在看来,它更像是在一个老旧但干净的房间里转悠,风景熟悉,缺乏惊喜。

评分

这本书的“干货”含量,坦率地说,稀释得太厉害了。我读了三分之一,发现自己真正能拿来引用的、具有颠覆性的观点,可能只占了全部篇幅的百分之五。其余的部分,充斥着大量的重复论述和为了凑字数而堆砌的空洞形容词。例如,作者反复强调“沟通的重要性”,用了不下十种不同的说法来表达同一个意思,但却没有提供任何一个真正新颖、可量化的沟通模型或工具。这让人感觉像是在吃一块掺了太多淀粉的食物,饱腹感是有的,但营养价值极低。我更倾向于那些直奔主题、观点犀利的书籍,即使篇幅短小,只要能给我带来一次“啊哈!”的顿悟,也远胜过这种拖沓冗长的叙述。这本书更像是一份精心包装的“入门级”宣传册,它试图面面俱到,结果却是哪方面都没能深入,浅尝辄止,最终给读者的印象是“我知道了很多,但好像什么都没学会”。这种感觉非常令人沮丧,因为它窃取了我的时间,却没有提供相应的回报。

评分

这本书的行文风格,用一个词来形容,那就是“疏离”。作者似乎总是站在一个极其高傲的知识制高点上俯视读者,使用的词汇和句式都带着一种刻意的学术腔调,让人感觉像是在啃一块干燥的干粮,虽然营养可能足够,但实在难以享受过程。许多关键论点的展开都显得虎头蛇尾,像是在抛出一个悬念,但随即就以一句“这一点在后续章节会有更深入的探讨”草草带过,结果“后续章节”里也只是泛泛而谈,根本没有真正深入进去。更令人气馁的是,书中似乎完全忽略了实际操作层面的困境。它描绘的理论模型完美无瑕,仿佛建立在一个不存在的乌托邦之上,对于现实世界中那些由人性和组织惰性带来的摩擦和阻力,这本书选择性地失明了。我试着将书中的一些“黄金法则”套用到我目前正在处理的复杂项目中,结果发现,它们在现实的泥潭里完全站不住脚,甚至有些建议如果真的照做,可能会引发灾难性的后果。这让我对作者的实践经验产生了深深的怀疑,或许他更擅长在象牙塔里构建理论模型,而不是在硝烟弥漫的战场上指挥战斗。

评分

从结构上讲,这本书的逻辑组织简直是一场灾难。它更像是一堆零散笔记的集合,而非一部精心打磨的作品。章节的编排毫无章法可言,前一章还在讨论宏观的市场趋势,下一章却突然跳到了某个微不足道的技术细节,然后又莫名其妙地回到了哲学层面的探讨。这种跳跃性阅读体验,极大地消耗了读者的耐心。我不得不经常翻回前几页,努力去寻找前后文之间的联系,但通常都以失败告终,仿佛每一章都是一个孤立的、自洽的微型宇宙,彼此之间缺乏必要的引力。此外,书中对图表的使用也极度不当。那些本应帮助理解复杂概念的流程图和矩阵分析,反而因为其信息过载和缺乏清晰的标注,成为了理解上的障碍。我花了大量时间试图解读那些晦涩难懂的图示,结果发现,如果去掉这些图表,仅凭文字反而更容易理解作者想要表达的意思。总而言之,这本书的骨架松散,需要读者自己去充当“结构工程师”,费力地去搭建起逻辑的梁柱,这对于一本声称要指导实践的读物来说,是不可原谅的失职。

评分

作者从设计原则慢慢引入常见的设计模式,先感性后理性。书中所举的几个例子非常的经典,深刻理解这几个例子可以大大提升自己的设计能力。

评分

读了前6章 后面有需要再读吧

评分

读了前6章 后面有需要再读吧

评分

作者从设计原则慢慢引入常见的设计模式,先感性后理性。书中所举的几个例子非常的经典,深刻理解这几个例子可以大大提升自己的设计能力。

评分

读了前6章 后面有需要再读吧

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有