敏捷开发 纪念版
正版保障 假一赔十 电子发票
¥
110.99
7.0折
¥
159
全新
库存3件
作者(美)罗伯特·C.马丁,(美)米咖·马丁
出版社清华大学出版社
ISBN9787302581901
出版时间2021-08
装帧平装
开本32开
定价159元
货号1202466063
上书时间2024-12-22
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
"罗伯特·C.马丁
(Robert C. Martin)
业内人士尊称的“鲍勃大叔”(Uncle Bob),是国际知名的软件工程师和导师,一位有五十多年健康编码经验的程序员。cleancoders.com联合创始人和UncleBob咨询公司创始人,主要提供软件咨询、技能培训和视频教学服务。
他在专业技术领域具有较深的造诣。除了担任C++Report杂志的总编辑,他还发表了大量有影响力的文章,受邀在许多国际性软件大会上发表演讲。他是SOLID五大原则的奠基人,是《敏捷宣言》联合签署人并担任过敏捷联盟第一届主席。他擅长的主题有软件匠艺、敏捷软件开发和测试驱动开发等。
马丁是个终生学习者,52年出生的他,还在考飞行驾照。
米咖·马丁
(Micah Martin)
软件工程师、咨询顾问、培训师,擅长的领域有面向对象设计原则与模式、敏捷软件开发实践。他是开源项目FitNesse项目的创始人和开发总监。他著述颇丰,同时也是很多软件大会的演讲嘉宾。
"
目录
第Ⅰ部分 敏捷开发
第1章 敏捷实践 002
敏捷联盟 003
个人和互动优先于过程和工具 004
可以工作的软件优先于详尽的文档 004
客户合作优先于合同谈判 005
应对变化优先于遵循计划 006
原则 007
小结 009
参考文献 010
第2章 极限编程概述 011
极限编程实践 011
完整的团队 011
用户故事 012
短的周期 012
验收测试 013
结对编程 014
测试驱动开发 015
集体所有权 015
持续集成 016
可持续的开发速度 016
开放的工作空间 017
规划游戏 017
简单设计 018
重构 019
隐喻 019
小结 020
参考文献 021
第3章 计划 022
初探 023
技术预研、故事拆分和速率 023
发布计划 024
迭代计划 024
定义“完成” 025
任务计划 025
迭代 027
跟踪 027
小结 028
参考文献 029
第4章 测试 030
测试驱动开发 030
验收测试 035
意外获得的架构 037
小结 037
参考文献 038
第5章 重构 039
素数产生程序:一个简单的重构示例 040
重构 043
后检查 049
小结 053
参考文献 054
第6章 一次编程实践 055
保龄球比赛 056
小结 106
保龄球规则概述 107
第Ⅱ部分 敏捷设计
臭味和原则 110
参考文献 110
第7章 什么是敏捷设计 111
设计臭味 112
设计的臭味:软件腐化的气味 112
僵化 113
脆弱 113
顽固 113
粘滞 114
不必要的复杂 114
不必要的重复 114
晦涩 115
为什么软件会腐化 115
Copy程序 116
一个熟悉的场景 116
Copy程序的敏捷设计 120
小结 122
参考文献 123
第8章 单一职责原则(SRP) 124
定义职责 126
分离耦合的职责 127
持久化 128
小结 128
参考文献 129
第9章 开/关原则(OCP) 130
描述 131
Shape应用程序 133
违反OCP 133
遵循OCP 136
预测变化和“贴切的”结构 138
放置“钩子” 139
使用抽象获得显式封闭性 140
使用“数据驱动”的方法获取
封闭性 141
小结 142
参考文献 143
第10章 里氏替换原则(LSP) 144
违反LSP的情形 145
更微妙的违反情形 147
一个实际的例子 154
用提取公共部分的方法代替继承 158
启发式规则和习惯用法 162
小结 162
参考文献 163
第11章 依赖倒置原则(DIP) 164
层次化 165
倒置的接口所有权 166
依赖于抽象 167
一个简单的DIP例子 168
找出底层抽象 169
熔炉示例 171
小结 172
参考文献 173
第12章 接口隔离原则(ISP) 174
接口污染 174
分离客户端就是分离接口 176
类接口和对象接口 177
通过委托来分离接口 178
使用多重继承隔离接口 179
ATM 用户界面的例子 180
小结 187
参考文献 187
第13章 C#程序员UML概述(C#语言) 188
类图 191
对象图 193
顺序图 193
协作图 194
状态图 195
小结 196
参考文献 196
第14章 使用UML 197
为什么建模 197
为什么要建软件模型 198
写代码之前是否应该做好详细设计 198
有效使用UML 199
与他人交流 199
脉络图 201
项目结束文档 202
要保留的和要丢弃的 203
迭代式改进 204
行为优先 204
检查结构 206
想象代码 208
图示的演化 209
何时以及如何绘制图示 210
何时要画图,何时不要画图 210
CASE工具 211
那么,文档呢 212
小结 212
第15章 状态图 214
基础知识 214
特定事件 216
超状态 217
初始伪状态和结束伪状态 218
使用FSM图示 219
小结 220
第16章 对象图 221
即时快照 221
主动对象 223
小结 227
第17章 用例 228
写用例 229
备选流程 230
其他东西呢 230
用例图 231
小结 232
参考文献 232
第18章 顺序图 233
基础知识 234
对象、生命线、消息及其他 234
创建和析构 235
简单循环 236
时机和场合 237
高级概念 240
循环和条件 240
耗费时间的消息 241
异步消息 243
多线程 248
主动对象 249
向接口发送消息 250
小结 251
第19章 类图 252
基础知识 253
类 253
关联 253
继承 254
类图示例 255
细节 258
类的衍型 258
抽象类 259
属性 260
聚合 260
组合 261
多重性 263
关联衍型 263
嵌套类 264
关联类 265
关联修饰符 266
小结 266
参考文献 266
第20章 咖啡的启示 267
Mark IV型专用咖啡机 267
规格说明书 268
常见的丑陋方案 271
虚构的抽象 273
改进方案 275
实现抽象模型 279
这个设计的好处 295
面向对象过度设计 303
参考文献 304
第21章 命令模式和主动对象模式 310
简单的命令模式 311
事务操作 313
实体上的解耦和时间上的解耦 314
时间上的解耦 315
UNDO()方法 315
主动对象模式 316
小结 322
参考文献 322
第22章 模板方法模式和策略模式:继承和委托 323
模板方法模式 324
模式滥用 327
冒泡排序 328
策略模式 332
小结 338
参考文献 338
第23章 外观模式和中介者模式 339
外观模式 339
中介者模式 340
小结 343
参考文献 343
第24章 单例模式和单状态模式 344
单例模式 345
好处 347
代价 347
单例模式实战 348
单状态模式 350
好处 351
代价 352
单状态模式实战 352
小结 358
参考文献 359
第25章 空对象模式 360
描述 360
小结 363
参考文献 364
第26章 案例学习:Payroll系统的轮迭代 365
规格说明书 366
基于用例进行分析 367
添加新员工 368
删除员工 369
提交考勤卡 370
提交销售凭证 370
提交工会服务费 371
更改员工信息 372
薪水支付日 374
反思:我们从中学到了什么 376
薪水支付类别抽象 376
支付薪水时间表抽象 377
第Ⅲ部分 案例学习:薪水支付系统Payroll
支付方式 378
工会所属关系 378
小结 379
参考文献 380
第27章 案例学习:Payroll系统
实现 381
事务 381
添加员工 382
Payoll系统的数据库 384
删除雇员 388
考勤卡、销售凭证和服务费用 390
更改员工信息 399
更改员工类别 403
我犯了什么晕? 409
支付员工薪水 413
我们是否希望开发人员来做商业决策? 415
按月薪结算的员工支付薪水 415
支付小时工的薪水 418
主程序 431
数据库 432
小结 433
关于本章 433
参考文献 434
第Ⅳ部分 案例学习:打包Payroll系统
第28章 包和组件的设计原则 436
包和组件 436
组件的内聚性原则:粒度 437
重用-发布等价原则(REP) 438
共同重用原则(CRP) 439
共同封闭原则(CCP) 440
组件内聚性小结 441
组件耦合原则:稳定性 441
无环依赖原则(ADP) 441
稳定依赖原则(SDP) 447
稳定抽象原则(SAP) 452
小结 456
第29章 工厂模式 457
依赖问题 460
静态类型与动态类型 461
可替换的工厂 462
对测试支架使用对象工厂 463
工厂模式的重要性 465
小结 465
参考文献 465
第30章 案例学习:Payroll系统的包分析 466
组件结构和符号 467
应用共同封闭原则(CCP) 469
应用发布等价原则(REP) 471
耦合和封装 474
度量指标 475
在薪水支付系统中使用这些度量 477
对象工厂 479
重新思考内聚的边界 483
终的包结构 483
小结 485
参考文献 485
第31章 组合模式 487
组合命令 489
多重性还是非多重性 490
小结 490
第32章 观察者模式 491
数字时钟 492
观察者模式 512
模型 513
观察者模式与面向对象设计原则 514
小结 514
参考文献 515
第33章 抽象服务器、适配器和桥接模式 516
抽象服务器模式 517
适配器模式 518
类形式的适配器 519
调制解调器问题、适配器和里氏替换原则 520
桥接模式 524
小结 527
参考文献 527
第34章 代理模式和TDG模式:管理第三方API 528
代理模式 529
代理购物车应用 534
小结 550
处理数据库、中间件以及其他第三方
接口 550
TDG模式 553
测试和内存TDG 561
测试DbGateway 562
小结 568
参考文献 568
第35章 访问者模式 569
访问者模式 570
非循环访问者模式 575
使用访问者模式 581
访问者模式的其他用途 589
装饰者模式 589
扩展对象模式 596
小结 610
参考文献 610
第36章 状态模式 611
嵌套语句switch/case 612
内部作用域内有效的状态变量 615
测试动作 616
代价和好处 616
迁移表 617
使用表解释 618
代价和收益 619
状态模式 620
状态模式和策略模式 624
使用状态模式的代价和好处 624
SMC(状态机编译器) 625
SMC生成的Turnstile.cs以及其他
支持文件 628
代价和收益 634
状态机的应用场合 634
作为 GUI 中的高层应用策略 634
GUI 交互控制器 636
分布式处理 637
小结 638
参考文献 639
第37章 案例学习:Payroll系统的数据库 640
建立数据库 641
代码设计中的一个缺陷 642
增加雇员 644
事务 658
加载Employee对象 665
还有什么工作? 680
第38章 案例学习:Payroll系统的用户界面 681
界面 683
实现 684
构建窗口 696
Payroll的窗口 705
真面目 720
小结 720
参考 721
Rupert:Alpha项目 722
附录A 两家公司的讽刺故事 722
附录B 源码即设计 739
内容摘要
《敏捷开发(纪念版)》介绍敏捷原则、模式和实践,包含4部分38章24个附录,首先概述敏捷开发、包含6个主题,分别为敏捷实践、极限编程、规划、测试、重构和编程活动。接下来介绍敏捷设计,解释了5个设计原则、UML及其应用,包括状态图、对象图、用例图、序列图和类图,并以一个完整的咖啡机编程案例来介绍具体的用法。通过薪水支付系统Payroll的实战练习,书中呈现了敏捷开发的整个过程及其实用价值。
《敏捷开发(纪念版)》适合真正想要通过敏捷方法来提升软件开发技能以及及时交付软件价值的所有读者阅读和参考,尤其适合开发、管理和业务分析岗位的人员学习。通过本书的阅读,读者还可以了解UML、设计模式、面向对象设计原则以及包括极限编程在内的敏捷方法。
主编推荐
"《敏捷开发(纪念版)》通过丰富的案例来诠释了敏捷开发和敏捷设计的基础知识,介绍了UML模型如何转为实际可用的C#代码。在总体上概述敏捷运动之后,展示了敏捷实践过程,并通过大量有价值的源代码实例来展示了敏捷设计、开发与实践。
通过本书的阅读,读者可以掌握以下主题:
● 12个敏捷原则和14个极限编程实践
● 技术预研,故事拆分,速率,迭代和版本规划
● 测试驱动开发、测试先行设计以及验收测试
● 单元测试与重构
● 结对编程
● 敏捷设计与设计异味
● 5类UML图及其高效用法
● 面向对象的软件包设计及其设计模式
● 如何综合运用所有要点来实现一个真实的项目"
— 没有更多了 —
以下为对购买帮助不大的评价