图书介绍

敏捷软件开发 原则、模式与实践 C#版 英文注释版【下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线】

敏捷软件开发 原则、模式与实践 C#版 英文注释版
  • (美)马丁(RobertC.Martin),马丁(MicahMartin)著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115165076
  • 出版时间:2008
  • 标注页数:732页
  • 文件大小:42MB
  • 文件页数:767页
  • 主题词:软件开发-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

敏捷软件开发 原则、模式与实践 C#版 英文注释版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

Section Ⅰ:Agile Development敏捷开发1

Chapter 1:Agile Practices敏捷实践3

The Agile Alliance敏捷联盟4

Individuals and Interactions over Processes and Tools人和交互重于过程和工具5

Working Software over Comprehensive Documentation可以工作的软件重于面面俱到的文档6

Customer Collaboration over Contract Negotiation客户合作重于合同谈判6

Responding to Change over Following a Plan随时应对变化重于遵循计划7

Principles原则8

Conclusion结论10

Bibliography参考文献11

Chapter 2:Overview of Extreme Programming极限编程概述13

The Practices of Extreme Programming极限编程实践14

Whole Team完整团队14

User Stories用户故事14

Short Cycles短交付周期15

Acceptance Tests验收测试15

Pair Programming结对编程16

Test-Driven Development(TDD)测试驱动开发17

Collective Ownership集体所有权17

Continuous Integration持续集成17

Sustainable Pace可持续的开发速度18

Open Workspace开放的工作空间18

The Planning Game计划游戏19

Simple Design简单设计19

Refactoring重构20

Metaphor隐喻21

Conclusion结论22

Bibliography参考文献22

Chapter 3:Planning计划23

Initial Exploration初始探索24

Spiking,Splitting,and Velocity探究、分解和速度24

Release Planning发布计划25

Iteration Planning迭代计划25

Defining“Done”定义“完成”26

Task Planning任务计划26

Iterating迭代27

Tracking跟踪28

Conclusion结论29

Bibliography参考文献29

Chapter 4:Testing测试31

Test-Driven Development测试驱动开发32

Example of Test-First Design测试优先设计的例子32

Test Isolation测试促使模块之间隔离33

Serendipitous Decoupling意外获得的解耦合36

Acceptance Tests验收测试36

Serendipitous Architecture意外获得的构架37

Conclusion结论38

Bibliography参考文献39

Chapter 5:Refactoring重构41

A Simple Example of Refactoring:Generating Primes素数产生程序:一个简单的重构示例42

Unit Testing单元测试44

Refactoring重构45

The Final Reread最后审视49

Conclusion结论53

Bibliography参考文献54

Chapter 6:A Programming Episode一次编程实践55

The Bowling Game保龄球比赛56

Conclusion结论98

Overview of the Rules of Bowling保龄球规则概述99

Section Ⅱ:Agile Design敏捷设计101

Chapter 7:What Is Agile Design什么是敏捷设计103

Design Smells设计臭味104

Design Smells—The Odors of Rotting Software设计坏味——腐化软件的气味104

Rigidity僵化性105

Fragility脆弱性105

Immobility顽固性105

Viscosity粘滞性105

Needless Complexity不必要的复杂性106

Needless Repetition不必要的重复106

Opacity晦涩性107

Why Software Rots软件为何会腐化107

The Copy Program Copy程序108

A Familiar Scenario熟悉的场景108

Agile Design of the Copy Program Copy程序的敏捷设计111

Conclusion结论113

Bibliography参考文献114

Chapter 8:The Single-Responsibility Principle(SRP) SRP:单一职责原则115

Defining a Responsibility定义职责117

Separating Coupled Responsibilities分离耦合的职责119

Persistence持久化119

Conclusion结论119

Bibliography参考文献120

Chapter 9:The Open/Closed Principle(OCP) OCP:开放-封闭原则121

Description of OCP OCP概述122

The Shape Application Shape应用程序124

Violating OCP违反OCP124

Conforming to OCP遵循OCP127

Anticipation and“Natural”Structure预测变化和“贴切的”结构128

Putting the“Hooks”In放置吊钩129

Using Abstraction to Gain Explicit Closure使用抽象获得显式封闭130

Using a Data-Driven Approach to Achieve Closure使用“数据驱动”的方法获取封闭性131

Conclusion结论132

Bibliography参考文献133

Chapter 10:The Liskov Substitution Principle(LSP) LSP:Liskov替换原则135

Violations of LSP违反LSP的情形136

A Simple Example简单例子136

A More Subtle Violation更微妙的违反情形138

A Real-World Example实际的例子143

Factoring Instead of Deriving用提取公共部分的方法代替继承148

Heuristics and Conventions启发式规则和习惯用法150

Conclusion结论151

Bibliography参考文献151

Chapter 11:The Dependency-Inversion Principle(DIP) DIP:依赖倒置原则153

Layering层次化154

Ownership Inversion倒置的接口所有权155

Dependence on Abstractions依赖于抽象156

A Simple DIP Example简单的DIP示例157

Finding the Underlying Abstraction找出潜在的抽象158

The Furnace Example熔炉示例160

Conclusion结论161

Bibliography参考文献162

Chapter 12:The Interface Segregation Principle(ISP) ISP:接口隔离原则163

Interface Pollution接口污染163

Separate Clients Mean Separate Interfaces分离客户就是分离接口165

Class Interfaces versus Object Interfaces类接口与对象接口166

Separation Through Delegation使用委托分离接口167

Separation Through Multiple Inheritance使用多重继承分离接口168

The ATM User Interface Example ATM用户界面的例子169

Conclusion结论174

Bibliography参考文献175

Chapter 13:Overview of UML for C#Programmers C#程序员UML概观177

Class Diagrams类图180

Object Diagrams对象图182

Sequence Diagrams顺序图182

Collaboration Diagrams协作图183

State Diagrams状态图184

Conclusion结论185

Bibliography参考文献185

Chapter 14:Working with Diagrams使用UML187

Why Model?为什么建模187

Why Build Models of Software?为什么构建软件模型188

Should We Build Comprehensive Designs Before Coding?编码前应该构建面面俱到的设计吗188

Making Effective Use of UML有效使用UML189

Communicating with Others与他人交流189

Road Maps脉络图191

Back-End Documentation项目结束文档192

What to Keep and What to Throw Away要保留的和要丢弃的192

Iterative Refinement迭代式改进194

Behavior First行为优先194

Check the Structure检查结构196

Envisioning the Code想象代码198

Evolution of Diagrams图的演化199

When and How to Draw Diagrams何时以及如何绘制图示200

When to Draw Diagrams and When to Stop何时要画图,何时不要画图200

CASE Tools CASE工具201

But What About Documentation?那么,文档呢202

Conclusion结论202

Chapter 15:State Diagrams状态图203

The Basics基础知识204

Special Events特定事件205

Superstates超状态206

Initial and Final Pseudostates初始伪状态和结束伪状态207

Using FSM Diagrams使用FSM图示208

Conclusion结论209

Chapter 16:Object Diagrams对象图211

A Snapshot in Time即时快照212

Active Objects主动对象213

Conclusion结论217

Chapter 17:Use Cases用例219

Writing Use Cases编写用例220

Alternate Courses备选流程221

What Else?其他东西呢221

Diagramming Use Cases用例图222

Conclusion结论223

Bibliography参考文献223

Chapter 18:Sequence Diagrams顺序图225

The Basics基础知识226

Objects,Lifelines,Messages,and Other Odds and Ends对象、生命线、消息及其他226

Creation and Destruction创建和析构227

Simple Loops简单循环228

Cases and Scenarios时机和场合228

Advanced Concepts高级概念232

Loops and Conditions循环和条件232

Messages That Take Time耗费时间的消息233

Asynchronous Messages异步消息235

Multiple Threads多线程239

Active Objects主动对象240

Sending Messages to Interfaces向接口发送消息240

Conclusion结论241

Chapter 19:Class Diagrams类图243

The Basics基础知识244

Classes类244

Association关联245

Inheritance继承246

An Example Class Diagram类图示例247

The Details细节249

Class Stereotypes类衍型249

Abstract Classes抽象类250

Properties属性251

Aggregation聚集252

Composition组合253

Multiplicity多重性254

Association Stereotypes关联衍型255

Nested Classes内嵌类256

Association Classes关联类256

Association Qualifiers关联修饰符257

Conclusion结论258

Bibliography参考文献258

Chapter 20:Heuristics and Coffee咖啡的启示259

The Mark IV Special Coffee Maker Mark Ⅳ型专用咖啡机260

Specification规格说明书260

A Common but Hideous Solution常见的丑陋方案263

Imaginary Abstraction虚构的抽象265

An Improved Solution改进方案266

Implementing the Abstract Model实现抽象模型270

The Benefits ofThis Design这个设计的好处277

OOverkill面向对象过度设计279

Bibliography参考文献292

Section Ⅲ:The Payroll Case Study薪水支付案例研究293

Rudimentary Specification of the Payroll System薪水支付系统的初步规格说明294

Exercise练习295

Use Case 1:Add New Employee用例1:增加新雇员295

Use Case 2:Deleting an Employee用例2:删除雇员295

Use Case 3:Post a Time Card用例3:登记考勤卡296

Use Case 4:Posting a Sales Receipt用例4:登记销售凭条296

Use Case 5:Posting a Union Service Charge用例5:登记工会服务费296

Use Case 6:Changing Employee Details用例6:更改雇员明细296

Use Case 7:Run the Payroll for Today用例7:现在运行薪水支付系统297

Chapter 21:Command and Active Object:Versatility and Multitasking COMMAND模式和ACTIVE OBJECT模式:多功能与多任务299

Simple Commands简单的Command300

Transactions事务302

Physical and Temporal Decoupling实体上解耦和时间上解耦304

Temporal Decoupling时间上解耦304

Undo Method Undo()方法304

Active Object ACTIVE OBJECT模式305

Conclusion结论310

Bibliography参考文献310

Chapter 22:Template Method and Strategy:Inheritance versus Delegation TEMPLATE METHOD模式和STRATEGY模式:继承和委托311

Template Method TEMPLATE METHOD模式312

Pattern Abuse滥用模式315

Bubble Sort冒泡排序316

Strategy STRATEGY模式319

Conclusion结论324

Bibliography参考文献324

Chapter 23:Facade and Mediator FACADE模式和MEDIATOR模式325

Facade FACADE模式325

Mediator MEDIATOR模式327

Conclusion结论329

Bibliography参考文献329

Chapter 24:Singleton and Monostate SINGLETON模式和MONOSTATE模式331

Singleton SINGLETON模式332

Benefits SINGLETON模式的好处334

Costs SINGLETON模式的代价334

Singleton in Action运用SINGLETON模式334

Monostate MONOSTATE模式336

Benefits MONOSTATE模式的好处337

Costs MONOSTATE模式的代价338

Monostate in Action运用MONOSTATE模式338

Conclusion结论343

Bibliography参考文献343

Chapter 25:Null Object NULL OBJECT模式345

Description描述345

Conclusion结论348

Bibliography参考文献348

Chapter 26:The Payroll Case Study:Iteration 1薪水支付案例研究:第一次迭代开始349

Rudimentary Specification初步的规格说明350

Analysis by Use Cases基于用例分析351

Adding Employees增加新雇员352

Deleting Employees删除雇员353

Posting Time Cards登记考勤卡354

Posting Sales Receipts登记销售凭条354

Posting a Union Service Charge登记工会服务费355

Changing Employee Details更改雇员明细356

Payday发薪日358

Reflection:Finding the Underlying Abstractions反思:找出底层的抽象360

Employee Payment雇员支付类别抽象360

Payment Schedule支付时间表抽象360

Payment Methods支付方式362

Affiliations从属关系362

Conclusion结论363

Bibliography参考文献363

Chapter 27:The Payroll Case Study:Implementation薪水支付案例研究:实现365

Transactions事务366

Adding Employees增加雇员366

Deleting Employees删除雇员372

Time Cards,Sales Receipts,and Service Charges考勤卡、销售凭条以及服务费用373

Changing Employees更改雇员属性381

What Was I Smoking?犯了什么晕390

Paying Employees支付雇员薪水393

Paying Salaried Employees支付领月薪的雇员薪水396

Paying Hourly Employees支付钟点工薪水398

Main Program主程序408

The Database数据库409

Conclusion结论411

About This Chapter关于本章411

Bibliography参考文献412

Section Ⅳ:Packaging the Payroll System打包薪水支付系统413

Chapter 28:Principles of Package and Component Design包和组件的设计原则415

Packages and Components包和组件416

Principles of Component Cohesion:Granularity组件的内聚性原则:粒度417

The Reuse/Release Equivalence Principle(REP)重用-发布等价原则417

The Common Reuse Principle(CRP)共同重用原则418

The Common Closure Principle(CCP)共同封闭原则419

Summary of Component Cohesion组件内聚性总结420

Principles of Component Coupling:Stability组件的耦合性原则:稳定性420

The Acyclic Dependencies Principle(ADP)无环依赖原则420

The Stable-Dependencies Principle(SDP)稳定依赖原则426

The Stable-Abstractions Principle(SAP)稳定抽象原则431

Conclusion结论435

Chapter 29:Factory FACTORY模式437

A Dependency Problem依赖问题440

Static versus Dynamic Typing静态类型与动态类型441

Substitutable Factories可替换的工厂442

Using Factories for Test Fixtures对测试支架使用对象工厂443

Importance of Factories工厂的重要性444

Conclusion结论445

Bibliography参考文献445

Chapter 30:The Payroll Case Study:Package Analysis薪水支付案例研究:包分析447

Component Structure and Notation组件结构和符号448

Applying the Common Closure Principle(CCP)应用CCP450

Applying the Reuse/Release Equivalence Principle(REP)应用REP452

Coupling and Encapsulation耦合和封装454

Metrics度量455

Applying the Metrics to the Payroll Application度量薪水支付应用程序457

Object Factories对象工厂460

Rethinking the Cohesion Boundaries重新思考内聚的边界461

The Final Packaging Structure最终的包结构463

Conclusion结论465

Bibliography参考文献465

Chapter 31:Composite COMPOSITE模式467

Composite Commands组合命令469

Multiplicity or No Multiplicity多重性还是非多重性470

Conclusion结论470

Chapter 32:Observer:Evolving into a Pattern OBSERVER——演化至模式471

The Digital Clock数字时钟472

The Observer Pattern OBSERVER模式491

Models模型491

Management of OOD Principles面向对象设计原则的运用492

Conclusion结论493

Bibliography参考文献494

Chapter 33:Abstract Server,Adapter,and Bridge ABSTRACT SERVER模式、ADAPTER模式和BRIDGE模式495

Abstract Server ABSTRACT SERVER模式496

Adapter ADAPTER模式498

The Class Form of Adapter类形式的ADAPTER模式498

The Modem Problem,Adapters,and LSP调制解调器问题、适配器以及LSP499

Bridge BRIDGE模式503

Conclusion结论505

Bibliography参考文献506

Chapter 34:Proxy and Gateway:Managing Third-Party APIs PROXY模式和GATEWAY模式:管理第三方API507

Proxy PROXY模式508

Implementing Proxy实现PROXY模式512

Summary小结525

Databases,Middleware,and Other Third-Party Interfaces数据库、中间件以及其他第三方接口526

Table Data Gateway TABLE DATA GATEWAY528

Testing and In-Memory TDGs测试和内存TDG535

Testing the DB Gateways测试DbGateWay536

Using Other Patterns with Databases可以用于数据库的其他模式539

Conclusion结论541

Bibliography参考文献541

Chapter 35:Visitor VISITOR模式543

VISITOR VISITOR模式544

Acyclic Visitor ACYCLIC VISITOR模式548

Uses of VISITOR使用VISITOR模式552

Decorator DECORATOR模式560

Extension Object EXTENSION OBJECT模式565

Conclusion结论576

Bibliography参考文献577

Chapter 36:State STATE模式579

Nested Switch/Case Statements嵌套switch/case语句580

The Internal Scope State Variable内部作用域的状态变量583

Testing the Actions测试动作583

Costs and Benefits代价和收益583

Transition Tables迁移表584

Using Table Interpretation使用表解释585

Costs and Benefits代价和收益586

The State Pattern STATE模式586

State versus Strategy STATE模式和STRATEGY模式589

Costs and Benefits代价和收益590

The State Machine Compiler(SMC)状态机编译器591

Turnstile.cs Generated by SMC,and Other Support Files SMC生成的Turnstile.cs以及其他支持文件593

Costs and Benefits代价和收益598

Classes of State Machine Application状态机应用的场合598

High-Level Application Policies for GUIs作为GUI中的高层应用策略599

GUI Interaction Controllers GUI交互控制器600

Distributed Processing分布式处理601

Conclusion结论602

Bibliography参考文献602

Chapter 37:The Payroll Case Study:The Database薪水支付案例研究:数据库603

Building the Database构建数据库604

A Flaw in the Code Design一个代码设计缺陷605

Adding an Employee增加雇员607

Transactions事务618

Loading an Employee加载Employee对象623

What Remains?还有什么工作636

Chapter 38:The Payroll User Interface:Model View Presenter薪水支付系统用户界面:Model-View-Presenter637

The Interface界面639

Implementation实现640

Building a Window构建窗口650

The Payroll Window Payroll窗口657

The Unveiling真面目669

Conclusion结论670

Bibliography参考文献670

Appendix A:A Satire of Two Companies双公司记671

Rufus Inc.:Project Kickoff Rufus公司:“日落”项目671

Rupert Industries:Project Alpha Rupert工业公司:“朝晖”项目671

Appendix B:What Is Software?什么是软件687

Index索引699

热门推荐