×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787302581901
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:752
  • 出版时间:2021-08-01
  • 条形码:9787302581901 ; 978-7-302-58190-1

本书特色

适读人群 :适合真正想要通过敏捷方法来提升软件开发技能以及及时交付软件价值的所有读者阅读和参考,尤其适合开发、管理和业务分析岗位的人员学习《敏捷开发(纪念版)》通过丰富的案例来诠释了敏捷开发和敏捷设计的基础知识,介绍了UML模型如何转为实际可用的C#代码。在总体上概述敏捷运动之后,展示了敏捷实践过程,并通过大量有价值的源代码实例来展示了敏捷设计、开发与实践。 通过本书的阅读,读者可以掌握以下主题: ● 12个敏捷原则和14个极限编程实践 ● 技术预研,故事拆分,速率,迭代和版本规划 ● 测试驱动开发、测试先行设计以及验收测试 ● 单元测试与重构 ● 结对编程 ● 敏捷设计与设计异味 ● 5类UML图及其高效用法 ● 面向对象的软件包设计及其设计模式 ● 如何综合运用所有要点来实现一个真实的项目

内容简介

《敏捷开发(纪念版)》介绍敏捷原则、模式和实践,包含4部分38章24个附录,首先概述敏捷开发、包含6个主题,分别为敏捷实践、极限编程、规划、测试、重构和编程活动。接下来介绍敏捷设计,解释了5个设计原则、UML及其应用,包括状态图、对象图、用例图、序列图和类图,并以一个完整的咖啡机编程案例来介绍具体的用法。通过薪水支付系统Payroll的实战练习,书中呈现了敏捷开发的整个过程及其实用价值。 《敏捷开发(纪念版)》适合真正想要通过敏捷方法来提升软件开发技能以及及时交付软件价值的所有读者阅读和参考,尤其适合开发、管理和业务分析岗位的人员学习。通过本书的阅读,读者还可以了解UML、设计模式、面向对象设计原则以及包括极限编程在内的敏捷方法。

目录

详细目录

第Ⅰ部分 敏捷开发

第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


展开全部

作者简介

  罗伯特·C.马丁(Robert C.Martin),业内人士尊称的“鲍勃大叔”(Uncle Bob),是国际知名的软件工程师和导师,一位有五十多年健康编码经验的程序员,cleancoders.com联合创始人和Uncle Bob咨询公司创始人,主要提供软件咨询、技能培训和视频教学服务。  他在专业技术领域具有较深的造诣。除了担任C++Report杂志的总编辑,他还发表了大量有影响力的文章,受邀在许多国际性软件大会上发表演讲。他是SOLID五大原则的奠基人,是《敏捷宣言》联合签署人并担任过敏捷联盟首届主席。他擅长的主题有软件匠艺、敏捷软件开发和测试驱动开发等。  马丁是个终生学习者,52年出生的他,还在考飞行驾照。    米咖·马丁(Micah Martin),软件工程师、咨询顾问、培训师,擅长的领域有面向对象设计原则与模式、敏捷软件开发实践。他是开源项目FitNesse项目的创始人和开发总监。他著述颇丰,同时也是很多软件大会的演讲嘉宾。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航