敏捷软件开发:原则、模式和实践(C#版•英文注释版)
3推荐 收藏
4.0K阅读
图灵程序设计丛书

敏捷软件开发:原则、模式和实践(C#版•英文注释版)

Robert C.Martin (作者)
终止销售
本书旨在指导.NET程序员学习构建软件的最佳实践,从而创建更好的设计并提升.NET应用的质量。书中使用真实案例讲解如何用极限编程来设计、测试、重构和结对编程,包含了极具价值的可重用的C#源代码,还重点讲述了如何使用UML和设计模式解决面向客户系统的问题。
本书适于软件开发和管理人员提高自身水平学习之用,也适于用作高校计算机专业本科生、研究生以及软件学院的软件工程和软件开发相关课程的教材或参考书。
纸质书
¥89.00

其他购买方式?

出版信息

  • 书  名敏捷软件开发:原则、模式和实践(C#版•英文注释版)
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2007-12-10
  • 书  号978-7-115-16507-7
  • 定  价89.00 元
  • 页  数764
  • 开  本16开
  • 出版状态终止销售
  • 原书名Agile Principles,Patterns,and Practices of C# and VB.Net
  • 原书号0-13-185725-8

同系列书

  • JavaScript高级程序设计(第4版)

    [美]马特·弗里斯比(Matt Frisbie)   李松峰   译

    本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了Java...

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Python编程:从入门到实践(第2版)

    埃里克·马瑟斯(Eric Matthes)   袁国忠   译

    本书是针对所有层次Python读者而作的Python入门书。全书分两部分:第一部分介绍用Python编程所必须...

目录

Section I:Agile D evelop ment敏捷开发    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原则    10
Conclusion结论    10
Bibliography参考文献    11
Chapter 2:Overview of Extreme Programming极限编程概述    13
The Practices of Extreme Programming极限编程实践    14
Whole Team完整团队    l4
User Stories用户故事    15
Short Cycles短交付周期    16
Acceptance Tests验收测试    16
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
lnitial Exploration初始探索    24
Spiking,Splitting,and Velocity探究、分解和速度    24
Release Planning发布计划    25
Iteration Planning迭代计划    25
Defining“Done”定义“完成”    26
Tlask Planning任务计划    26
Iterating迭代    27
Tracking跟踪    28
Conclusion结论    29
Bibliography参考文献    29
Chapter 4:Testing测试    31
TIest-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 II Agile D esign敏捷设计    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
NeedLless 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结论    1l 3
Bibliography参考文献    114
Chapter 8:The Single-Responsibility Principle(SRP)
S R P:单一职责原则    1l 5
Defining a Responsibility定义职责    117
Separating Coupled Responsibilities分离耦合的职责    119
Persistence持久化    119
Conclusion结论    119
Bibliography参考文献    120
Chapter 9:The Open/Closed Principle(OCP)
OC P:开放一封闭原贝IJ    12l
Description 0f oCP OCP概述    122
The Shape Application Shape应用程序    124
Violating OCP违反OCP    124
Conforming to OCP j望循OCP    127
Anticipation and“Natural”Structure预测变化和“贴切的”结构    128
Putting the“Hooks”In放置吊钩    129
Using Abstraction to Gain Explicit Closure使用抽象获得显式封闭    13O
Using a Data--Driven Approach to Achieve Closure
使用“数据驱动"的方法获取封闭性    131
Conclusion结论    132
Bibliography参考文献    133
Chapter 10:The Liskov Substitution Principle(LSP)
LS P:Liskov替换原则    135
Violations 0f LSP违反LS P的情形    136
A Simple Example简单例子    136
A More Subtle Violation更微妙的违反情形    138
A Real.World Example实际的例子    143
Factoring Instead of Deriving用提取公共部分的方法代替继承    148
Heuristics and Conventions启发式规则和习惯用法    15O
Conclusion结论    151
Bibliography参考文献    151
Chapter 11:The Dependency--Inversion Principle(DIP)
D I P:依赖倒置原则    153
Layering层次化    l 54
Ownership Inversion倒置的接口所有权    155
Dependence on Abstractions依赖于抽象    156
A Simple DIP Example简单的D l P示例    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 Obj ect 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 Cjfj6Programmers c≠}程序员UM嘲    177
Class Diagrams类图    180
Obj ect Diagrams对象图    182
Sequence Diagrams顺序图    182
Collaboration Diagrams协作图    183
State Diagrams状态图    184
Conclusion结论    185
Bibliography参考文献    j185
Chapter 14:Working with Diagrams使用UML    187
Why Model?为什么建模    187
Why Build Models of Software'?为什么构建软件模型    188
Should We Build Comprehensive Designs Before Coding?--编码前应该构建面面俱到的设计吗    188
Making Effective Use of UML有效使用U M L    189
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:Obj ect Diagrams对象图    211
A Snapshot in Time即时快照    212
Active Obj ects主动对象    213
Conclusion结论    217
C hapter 17:Use C ases j~N    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
Obj ects,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 Obj ects主动对象    240
Sending Messages to Interfaces向接口发送消息    240
Conclusion结论    241
C hapter 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 C0ffee咖啡的启示    259
The Mark IV Special Coffee Maker Mark lV型专用咖啡机    260
Specification规格说明书    260
A Common but Hideous Solution常见的丑陋方案    263
Imaginary Abstraction虚构的抽象    265
An Improved Solution改进方案    266
Implementing the Abstract Model实现抽象模型    270
The Benefits of This Design这个设计的好处    277
OOverkill面向对象过度设计     279
Bibliography参考文献    292
Section 1II The Payroll C ase 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 Receip t用例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 Obj ect:Versatility and Multitasking COM MAN D模式和ACTlVE OBJECT模式:多功能与多任务    299
Simple Commands简单的Command    300
Transactions事务    302
Physical and Temporal Decoupling实体上解耦和时间上解耦    304
Temporal Decoupling时间上解耦    304
Undo Method Undo()方法    304
Active Obj ect ACTIVE OBJ ECT模式    305
Conclusion结论    31O
Bibliography参考文献    31O
Chapter 22:Template Method and Strategy-.Inheritance versus Delegation TEMPLATE METHOD模式~13STRATEGY模式:继承和委托    311
Template Method TEM PLATE M ETHOD模式    312
Pattern Abuse滥用模式    315
Bubb l e S o r t冒泡排序    316
Strategy STRATEGY模式    319
Conclusion结论    324
Bibliography参考文献    324
Chapter 23"Facade and Mediator FACAD E模式~13MEDIATO R模式    325
Facade FACAD E模式    325
Mediator M E D IATOR模式    327
Conclusion结论    329
Bibliography参考文献    329
Chapter 24"一Singleton and Monostate SlNGL日_ON模式和MONOSTATE模式    331
Singleton SI N G LETON模式    332
Benefits SINGLETON模式的好处    334
Costs SINGLETON模式的代价    334
Singleton in Action运用SINGLETON模式    334
Monostate MO NOSTATE模式    336
Benefits MONOSTATE模式的好处    337
Costs MONOSTATE模式的代价    338
Monostate in Action运用MONOSTATE模式    338
Conclusion结论    343
Bibliography参考文献    343
Chapter 25:Null Obj ect 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 IV:Packaging the Payroll System
打包薪水支付系统    413
Chapter 28:Principles of Package
an d C o mp o n ent D esign包和组件的设计原则    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 TIest 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)/EIII CCP    450
Applying the Reuse/Release Equivalence Principle(REP)/E,EB REP    452
Coupling and Encapsulation耦合和封装    454
Metrics度量    455
Applying the Metrics to the Payroll Application度量薪水支付应用程序    457
Obj ect Factories x,/N2J-    460
Rethinking the Cohesion Boundaries重新思考内聚的边界    461
The Final Packaging Structure最终的包结构    463
Conclusion结论    465
Bibliography参考文献    465
C hapter 31:C omposite COM POSITE模式    467
Composite Commands组合命令    469
Multiplicity or No Multiplicity多重性还是非多重性    470
Conclusion结论    470
Chapter 32"Observer"Evolving into a Pattern
O BS E RVE R——演化至模式    47l
The Digital Clock数字时钟    472
The Observer Pattern OBSE RVE R模式    491
Models模型    491
Management of OOD Principles面向对象设计原则的运用    492
Conclusion结论    493
Bibliography参考文献    494
Chapter 33"Abstract Server,Adapter,and Bridge
ABSTRACT S E RVE R模式、ADAPTE R模式~I:IBRIDG E模式    495
Abstract Server ABSTRACT S E RVE R模式    496
Adapter ADAPTE R模式    498
The Class Form of Adapter类形式ADAPTER模式    498
The Mode,m Problem,Adapters,and LSP调制解调器问题、适配器以及LSP    499
Bridge BRI DG E模式    503
Conclusion结论    505
Bibliography参考文献    506
Chapter 34"Proxy and Gateway".Managing
Third-Party APIs P ROXY模式~N GATEWAY模式:管理第三方API    507
Proxy PROXY模式    508
Implementing Proxy实现PROXY模式    512
Summary小结    525
Databases,Middleware,and Other Third.Party Interfaces
数据库、中间件以及其他第三方接口    526
Table Data Gateway TABLE DATA GATEWAY    528
Testing and In.Memory TDGs测试和内存TDG    535
Testing the DB Gateways测试DbGatel\№y    536
Using Other Patterns with Databases可以用于数据库的其他模式    539
Conclusion结论    541
Bibliography参考文献    541
C hapter 35"Visitor VI S ITO R模式    543
VISITOR VI S ITO R模式    544
Acyclic Visitor ACYCLI C VI SITOR模式    548
U ses of VISITOR使用VISITOR模式    552
Decorator D ECO RATOR模式    560
Extension Obj ect EXTE N S IO N O BJ ECT模式    565
Conclusion结论    576
Bibliography参考文献    577
Chapter 36:State STATE模式    579
Nested Swi tch/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
T]he State Machine Compiler(SMCl状态机编译器    591
Turnstile.CS Generated by SMC.and Other Support Files
SMC生成的Turns t i l e.C S以及其他支持文件    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
C onclusion结论    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 E mployee增加雇员    607
Transactions事务    618
Loading an E mployee加载Employee对象    623
What Remains?还有什么工作    636
Chapter 38 The Payroll User Interface"Model View
Presenter薪水支付系统用户界面:Model—View—P resente r    637
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 C ompanies双公司记    671
Rufus Inc.:Proj ect Kickoff Rufus公司:“日落”项目    671
Rupert Industries'.Proj ect Alpha Rupert工业公司:“朝晖”项目    671
Appendix B:What Is Software?什么是软件    687
Index索引    699
暂无评论!