logo资料库

敏捷软件开发:原则、模式与实践(英文版).pdf

第1页 / 共944页
第2页 / 共944页
第3页 / 共944页
第4页 / 共944页
第5页 / 共944页
第6页 / 共944页
第7页 / 共944页
第8页 / 共944页
资料共944页,剩余部分请下载后查看
Agile Principles, Patterns, and Practices in C#
Table of Contents
Copyright
Robert C. Martin Series
Foreword
Foreword
Preface
Acknowledgments
About the Authors
Section I. Agile Development
Chapter 1. Agile Practices
The Agile Alliance
Principles
Conclusion
Bibliography
Chapter 2. Overview of Extreme Programming
The Practices of Extreme Programming
Conclusion
Bibliography
Chapter 3. Planning
Initial Exploration
Release Planning
Iteration Planning
Defining "Done"
Task Planning
Iterating
Tracking
Conclusion
Bibliography
Chapter 4. Testing
Test-Driven Development
Acceptance Tests
Serendipitous Architecture
Conclusion
Bibliography
Chapter 5. Refactoring
A Simple Example of Refactoring: Generating Primes
Conclusion
Bibliography
Chapter 6. A Programming Episode
The Bowling Game
Conclusion
Overview of the Rules of Bowling
Section II. Agile Design
Chapter 7. What Is Agile Design?
Design Smells
Why Software Rots
The Copy Program
Conclusion
Bibliography
Chapter 8. The Single-Responsibility Principle (SRP)
Defining a Responsibility
Separating Coupled Responsibilities
Persistence
Conclusion
Bibliography
Chapter 9. The Open/Closed Principle (OCP)
Description of OCP
The Shape Application
Conclusion
Bibliography
Chapter 10. The Liskov Substitution Principle (LSP)
Violations of LSP
Factoring Instead of Deriving
Heuristics and Conventions
Conclusion
Bibliography
Chapter 11. The Dependency-Inversion Principle (DIP)
Layering
A Simple DIP Example
The Furnace Example
Conclusion
Bibliography
Chapter 12. The Interface Segregation Principle (ISP)
Interface Pollution
Separate Clients Mean Separate Interfaces
Class Interfaces versus Object Interfaces
The ATM User Interface Example
Conclusion
Bibliography
Chapter 13. Overview of UML for C# Programmers
Class Diagrams
Object Diagrams
Collaboration Diagrams
State Diagrams
Conclusion
Bibliography
Chapter 14. Working with Diagrams
Why Model?
Making Effective Use of UML
Iterative Refinement
When and How to Draw Diagrams
Conclusion
Chapter 15. State Diagrams
The Basics
Using FSM Diagrams
Conclusion
Chapter 16. Object Diagrams
A Snapshot in Time
Active Objects
Conclusion
Chapter 17. Use Cases
Writing Use Cases
Diagramming Use Cases
Conclusion
Bibliography
Chapter 18. Sequence Diagrams
The Basics
Advanced Concepts
Conclusion
Chapter 19. Class Diagrams
The Basics
An Example Class Diagram
The Details
Conclusion
Bibliography
Chapter 20. Heuristics and Coffee
The Mark IV Special Coffee Maker
OOverkill
Bibliography
Section III. The Payroll Case Study
Chapter 21. COMMAND and ACTIVE OBJECT: Versatility and Multitasking
Simple Commands
Transactions
Undo Method
Active Object
Conclusion
Bibliography
Chapter 22. TEMPLATE METHOD and STRATEGY: Inheritance versus Delegation
Template Method
Strategy
Conclusion
Bibliography
Chapter 23. Facade and Mediator
Facade
Mediator
Conclusion
Bibliography
Chapter 24. Singleton and Monostate
Singleton
Monostate
Conclusion
Bibliography
Chapter 25. Null Object
Description
Conclusion
Bibliography
Chapter 26. The Payroll Case Study: Iteration 1
Rudimentary Specification
Analysis by Use Cases
Reflection: Finding the Underlying Abstractions
Conclusion
Bibliography
Chapter 27. The Payroll Case Study: Implementation
Transactions
Main Program
The Database
Conclusion
About This Chapter
Bibliography
Section IV. Packaging the Payroll System
Chapter 28. Principles of Package and Component Design
Packages and Components
Principles of Component Cohesion: Granularity
Principles of Component Coupling: Stability
Conclusion
Chapter 29. Factory
A Dependency Problem
Static versus Dynamic Typing
Substitutable Factories
Using Factories for Test Fixtures
Importance of Factories
Conclusion
Bibliography
Chapter 30. The Payroll Case Study: Package Analysis
Component Structure and Notation
Applying the Common Closure Principle (CCP)
Applying the Reuse/Release Equivalence Principle (REP)
Coupling and Encapsulation
Metrics
Applying the Metrics to the Payroll Application
The Final Packaging Structure
Conclusion
Bibliography
Chapter 31. Composite
Composite Commands
Multiplicity or No Multiplicity
Conclusion
Chapter 32. Observer: Evolving into a Pattern
The Digital Clock
The OBSERVER Pattern
Conclusion
Bibliography
Chapter 33. Abstract Server, Adapter, and Bridge
Abstract Server
Adapter
Bridge
Conclusion
Bibliography
Chapter 34. PROXY and GATEWAY: Managing Third-Party APIs
Proxy
Databases, Middleware, and Other Third-Party Interfaces
Table Data Gateway
Using Other Patterns with Databases
Conclusion
Bibliography
Chapter 35. Visitor
Visitor
Acyclic Visitor
Decorator
Extension Object
Conclusion
Bibliography
Chapter 36. State
Nested Switch/Case Statements
Transition Tables
The State Pattern
Classes of State Machine Application
Conclusion
Bibliography
Chapter 37. The Payroll Case Study: The Database
Building the Database
A Flaw in the Code Design
Adding an Employee
Transactions
Loading an Employee
What Remains?
Chapter 38. The Payroll User Interface: MODEL VIEW PRESENTER
The Interface
Implementation
Building a Window
The Payroll Window
The Unveiling
Conclusion
Bibliography
Appendix A. A Satire of Two Companies
Appendix B. What Is Software?
Afterword
InsideFrontCover
Manifesto for Agile Software Development
Principles behind the Agile Manifesto
InsideBackCover
Practices of Extreme Programming
The Principles of Object Oriented Design
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Agile Principles, Patterns, and Practices in C# Agile Principles, Patterns, and Practices in C# By Martin C. Robert, Martin Micah By Martin C. Robert, Martin Micah ............................................... ............................................... Publisher: Prentice Hall Publisher: Prentice Hall Pub Date: July 20, 2006 Pub Date: July 20, 2006 Print ISBN-10: 0-13-185725-8 Print ISBN-10: 0-13-185725-8 Print ISBN-13: 978-0-13-185725-4 Print ISBN-13: 978-0-13-185725-4 Pages: 768 Pages: 768     Table of Contents  | Index Table of Contents  | Index With the award-winning book Agile Software Development: Principles, Patterns, and Practices, With the award-winning book Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in C#. C#. This book presents a series of case studies illustrating the fundamentals of Agile development and This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the The book includes many source code examples that are also available for download from the authors' Web site. authors' Web site. Readers will come away from this book understanding Readers will come away from this book understanding Agile principles, and the fourteen practices of Extreme Programming Agile principles, and the fourteen practices of Extreme Programming Spiking, splitting, velocity, and planning iterations and releases Spiking, splitting, velocity, and planning iterations and releases Test-driven development, test-first design, and acceptance testing Test-driven development, test-first design, and acceptance testing Refactoring with unit testing Refactoring with unit testing Pair programming Pair programming Agile design and design smells Agile design and design smells The five types of UML diagrams and how to use them effectively The five types of UML diagrams and how to use them effectively Object-oriented package design and design patterns Object-oriented package design and design patterns How to put all of it together for a real-world project How to put all of it together for a real-world project Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is the first book you should read to understand agile software and how it applies to programming in the first book you should read to understand agile software and how it applies to programming in
the .NET Framework.
Agile Principles, Patterns, and Practices in C# By Martin C. Robert, Martin Micah ............................................... Publisher: Prentice Hall Pub Date: July 20, 2006 Print ISBN-10: 0-13-185725-8 Print ISBN-13: 978-0-13-185725-4 Pages: 768   Table of Contents  | Index                                                                                                                                                                                 Copyright Robert C. Martin Series Foreword Foreword Preface Acknowledgments About the Authors Section I.  Agile Development Chapter 1.  Agile Practices The Agile Alliance Principles Conclusion Bibliography Chapter 2.  Overview of Extreme Programming The Practices of Extreme Programming Conclusion Bibliography Chapter 3.  Planning Initial Exploration Release Planning Iteration Planning Defining "Done" Task Planning Iterating Tracking Conclusion Bibliography Chapter 4.  Testing Test-Driven Development Acceptance Tests Serendipitous Architecture Conclusion
                                                                                                                                                                                                                                                                                  Bibliography Chapter 5.  Refactoring A Simple Example of Refactoring: Generating Primes Conclusion Bibliography Chapter 6.  A Programming Episode The Bowling Game Conclusion Overview of the Rules of Bowling Section II.  Agile Design Chapter 7.  What Is Agile Design? Design Smells Why Software Rots The Copy Program Conclusion Bibliography Chapter 8.  The Single-Responsibility Principle (SRP) Defining a Responsibility Separating Coupled Responsibilities Persistence Conclusion Bibliography Chapter 9.  The Open/Closed Principle (OCP) Description of OCP The Shape Application Conclusion Bibliography Chapter 10.  The Liskov Substitution Principle (LSP) Violations of LSP Factoring Instead of Deriving Heuristics and Conventions Conclusion Bibliography Chapter 11.  The Dependency-Inversion Principle (DIP) Layering A Simple DIP Example The Furnace Example Conclusion Bibliography Chapter 12.  The Interface Segregation Principle (ISP) Interface Pollution Separate Clients Mean Separate Interfaces Class Interfaces versus Object Interfaces The ATM User Interface Example Conclusion Bibliography
                                                                                                                                                                                                                                                                                  Chapter 13.  Overview of UML for C# Programmers Class Diagrams Object Diagrams Collaboration Diagrams State Diagrams Conclusion Bibliography Chapter 14.  Working with Diagrams Why Model? Making Effective Use of UML Iterative Refinement When and How to Draw Diagrams Conclusion Chapter 15.  State Diagrams The Basics Using FSM Diagrams Conclusion Chapter 16.  Object Diagrams A Snapshot in Time Active Objects Conclusion Chapter 17.  Use Cases Writing Use Cases Diagramming Use Cases Conclusion Bibliography Chapter 18.  Sequence Diagrams The Basics Advanced Concepts Conclusion Chapter 19.  Class Diagrams The Basics An Example Class Diagram The Details Conclusion Bibliography Chapter 20.  Heuristics and Coffee The Mark IV Special Coffee Maker OOverkill Bibliography Section III.  The Payroll Case Study Chapter 21.  COMMAND and ACTIVE OBJECT: Versatility and Multitasking Simple Commands Transactions Undo Method Active Object
                                                                                                                                                                                                                                                                                  Conclusion Bibliography Chapter 22.  TEMPLATE METHOD and STRATEGY: Inheritance versus Delegation Template Method Strategy Conclusion Bibliography Chapter 23.  Facade and Mediator Facade Mediator Conclusion Bibliography Chapter 24.  Singleton and Monostate Singleton Monostate Conclusion Bibliography Chapter 25.  Null Object Description Conclusion Bibliography Chapter 26.  The Payroll Case Study: Iteration 1 Rudimentary Specification Analysis by Use Cases Reflection: Finding the Underlying Abstractions Conclusion Bibliography Chapter 27.  The Payroll Case Study: Implementation Transactions Main Program The Database Conclusion About This Chapter Bibliography Section IV.  Packaging the Payroll System Chapter 28.  Principles of Package and Component Design Packages and Components Principles of Component Cohesion: Granularity Principles of Component Coupling: Stability Conclusion Chapter 29.  Factory A Dependency Problem Static versus Dynamic Typing Substitutable Factories Using Factories for Test Fixtures Importance of Factories
                                                                                                                                                                                                                                                                                    Conclusion Bibliography Chapter 30.  The Payroll Case Study: Package Analysis Component Structure and Notation Applying the Common Closure Principle (CCP) Applying the Reuse/Release Equivalence Principle (REP) Coupling and Encapsulation Metrics Applying the Metrics to the Payroll Application The Final Packaging Structure Conclusion Bibliography Chapter 31.  Composite Composite Commands Multiplicity or No Multiplicity Conclusion Chapter 32.  Observer: Evolving into a Pattern The Digital Clock The OBSERVER Pattern Conclusion Bibliography Chapter 33.  Abstract Server, Adapter, and Bridge Abstract Server Adapter Bridge Conclusion Bibliography Chapter 34.  PROXY and GATEWAY: Managing Third-Party APIs Proxy Databases, Middleware, and Other Third-Party Interfaces Table Data Gateway Using Other Patterns with Databases Conclusion Bibliography Chapter 35.  Visitor Visitor Acyclic Visitor Decorator Extension Object Conclusion Bibliography Chapter 36.  State Nested Switch/Case Statements Transition Tables The State Pattern Classes of State Machine Application
分享到:
收藏