Agile Software Development: Principles, Patterns, and Practices (Hardcover)

Robert C. Martin

買這商品的人也買了...

商品描述

For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming.

Written for software engineers “in the trenches,” this text focuses on the technology—the principles, patterns, and process—that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers.

Table of Contents

I. AGILE DEVELOPMENT.

 1. Agile Practices.
 2. Overview of Extreme Programming.
 3. Planning.
 4. Testing.
 5. Refactoring. 
 6. A Programming Episode.

II. AGILE DESIGN.

 7. What Is Agile Design?
 8. SRP: The Single-Responsibility Principle. 
 9. OCP: The Open-Closed Principle.
10. LSP: The Liskov Substitution Principle.
11. DIP: The Dependency-Inversion Principle.
12. ISP: The Interface-Segregation Principle.

III. THE PAYROLL CASE STUDY.

13. Command and Active Object.
14. Template Method & Strategy: Inheritance vs. Delegation.
15. Facade and Mediator.
16. Singleton and Monostate.
17. Null Object.
18. The Payroll Case Study: Iteration One Begins.
19. The Payroll Case Study: Implementation.

IV. PACKAGING THE PAYROLL SYSTEM.

20. Principles of Package Design.
21. Factory.
22. The Payroll Case Study (Part 2).

V. THE WEATHER STATION CASE STUDY.

23. Composite.
24. Observer—Backing into a Pattern.
25. Abstract Server, Adapter, and Bridge.
26. Proxy and Stairway to Heaven: Managing Third Party APIs.
27. Case Study: Weather Station.

VI. THE ETS CASE STUDY.

28. Visitor.
29. State.
30. The ETS Framework.
 
Appendix A. UML Notation I: The CGI Example.
Appendix B. UML Notation II: The Statmux.
Appendix C. A Satire of Two Companies.
Appendix D. The Source Code Is the Design.
Index.

商品描述(中文翻譯)

適用於物件導向設計、C++中級程式設計和物件導向程式設計的課程。

本書針對身處於軟體工程師「戰場」的人們,專注於幫助軟體工程師有效地管理日益複雜的作業系統和應用程式的技術,包括原則、模式和流程。同時,本書也強調了技術背後的人們。本書將為學生們在軟體工程領域的職業生涯做好準備,並作為軟體工程師持續學習的資源。

目錄

I. 敏捷開發。

 1. 敏捷實踐。

 2. 極限編程概述。

 3. 計劃。

 4. 測試。

 5. 重構。

 6. 編程實例。

II. 敏捷設計。

 7. 什麼是敏捷設計?

 8. SRP:單一職責原則。

 9. OCP:開放封閉原則。

10. LSP:里氏替換原則。

11. DIP:依賴反轉原則。

12. ISP:介面隔離原則。

III. 薪資系統案例研究。

13. 命令和主動物件。

14. 模板方法和策略:繼承 vs. 委派。

15. 外觀和中介者。

16. 單例和單例模式。

17. 空物件。

18. 薪資系統案例研究:第一次迭代。

19. 薪資系統案例研究:實作。

IV. 打包薪資系統。

20. 打包設計原則。

21. 工廠。

22. 薪資系統案例研究(第二部分)。

V. 氣象站案例研究。

23. 複合。

24. 觀察者:倒退到一個模式。

25. 抽象伺服器、適配器和橋接。

26. 代理和通往天堂的階梯:管理第三方 API。

27. 案例研究:氣象站。

VI. ETS案例研究。

28. 訪問者。

29. 狀態。

30. ETS 框架。

 

附錄 A. UML 表示法 I:CGI 範例。

附錄 B. UML 表示法 II:Statmux。

附錄 C. 兩家公司的諷刺。

附錄 D. 源代碼即設計。

索引。