TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
敏捷軟件開發原則.模式與實踐(C#版 英文注釋版)(簡體書)
滿額折

敏捷軟件開發原則.模式與實踐(C#版 英文注釋版)(簡體書)

人民幣定價:89 元
定  價:NT$ 534 元
優惠價:87465
絕版無法訂購
相關商品
商品簡介
作者簡介
目次

商品簡介

本書旨在指導.NET程序員學習構建軟件的最佳實踐,從而創建更好的設計并提升.NET應用的質量。書中使用真實案例講解如何用極限編程來設計、測試、重構和結對編程,包含了極具價值的可重用的C#源代碼,還重點講述了如何使用UML和設計模式解決面向客戶系統的問題。
本書適于軟件開發和管理人員提高自身水平學習之用,也適于用作高校計算機專業本科生、研究生以及軟件學院的軟件工程和軟件開發相關課程的教材或參考書。

作者簡介

Robert C.Martin世界級的軟件開發大師,著名軟件咨詢公司Object Mentor公司的創始人和總裁。曾經擔任C++ Report雜志主編多年,也是設計模式和敏捷開發運動的主要倡導者之一。

目次

Section I:Agile Development 敏捷開發 
Chapter 1:Agile Practices 敏捷實踐 
 The Agile Alliance 敏捷聯盟 
Individuals and Interactions over Processes and Tools人和交互重于過程和工具 
Working Software over Comprehensive Documentation 可以工作的軟件重于面面俱到的文檔 
Customer Collaboration over Contract Negotiation 客戶合作重于合同談判 
Responding to Change over Following a Plan 隨時應對變化重于遵循計劃 
 Principles 原則 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 2:Overview of Extreme Programming 極限編程概述 
 The Practices of Extreme Programming 極限編程實踐 
Whole Team 完整團隊 
User Stories 用戶故事 
Short Cycles 短交付周期 
Acceptance Tests 驗收測試 
Pair Programming 結對編程 
Test.Driven Development(TDD) 測試驅動開發 
Collective Ownership 集體所有權 
Continuous Integration 持續集成 
Sustainable Pace 可持續的開發速度 
Open Workspace 開放的工作空間 
The Planning Game 計劃游戲 
Simple Design 簡單設計 
Refactoring 重構 
Metaphor 隱喻 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 3:Planning 計劃 
 Initial Exploration 初始探索 
Spiking,Splitting,and Velocity 探究、分解和速度 
 Release Planning 發布計劃 
 Iteration Planning 迭代計劃 
 Defining“Done” 定義“完成” 
 Tlask Planning 任務計劃 
 Iterating 迭代 
 Tracking 跟蹤 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 4:Testing 測試 
 TIest-Driven Development 測試驅動開發 
Example of Test-First Design 測試優先設計的例子 
Test Isolation 測試促使模塊之間隔離 
Serendipitous Decoupling 意外獲得的解耦合 
 Acceptance Tests 驗收測試 
 Serendipitous Architecture 意外獲得的構架 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 5:Refactoring 重構 
 A Simple Example of Refactoring:Generating Primes 素數產生程序:一個簡單的重構示例 
Unit Testing 單元測試 
Refactoring 重構 
The Final Reread 最后審視 
 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 設計臭味 
Design Smells——The Odors of Rotting Software 設計壞味——腐化軟件的氣味 
Rigidity 僵化性 
Fragility 脆弱性 
Immobility 頑固性 
Viscosity 粘滯性 
Needless Complexity 不必要的復雜性 
NeedLless Repetition 不必要的重復 
Opacity 晦澀性 
 Why Software Rots 軟件為何會腐化 
 The Copy Program Copy 程序 
A Familiar Scenario 熟悉的場景 
Agile Design of the Copy Program copy 程序的敏捷設計 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 8:The Single-Responsibility Principle(SRP) SRP:單一職責原則 
 Defining a Responsibility 定義職責 
 Separating Coupled Responsibilities 分離耦合的職責 
 Persistence 持久化 
 Conclusion 結論
 Bibliography 參考文獻 
Chapter 9:The Open/Closed Principle(OCP) OCP:開放-封閉原則 
 Description 0f OCP OCP概述 
 The Shape Application Shape 應用程序 
Violating OCP 違反OCP 
Conforming to OCP 遵循OCP 
Anticipation and“Natural”Structure 預測變化和“貼切的”結構 
Putting the“Hooks”In 放置吊鉤 
Using Abstraction to Gain Explicit Closure使用抽象獲得顯式封閉 
Using a Data-Driven Approach to Achieve Closure 使用“數據驅動""的方法獲取封閉性 
 Conclusion結論 
 Bibliography參考文獻 
Chapter 10:The Liskov Substitution Principle(LSP) LSP:Liskov替換原則 
 Violations 0f LSP 違反LS P的情形 
A Simple Example 簡單例子 
A More Subtle Violation 更微妙的違反情形 
A Real-World Example 實際的例子 
 Factoring Instead of Deriving 用提取公共部分的方法代替繼承 
 Heuristics and Conventions 啟發式規則和習慣用法 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 11:The Dependency-Inversion Principle(DIP) DIP:依賴倒置原則 
 Layering 層次化 
Ownership Inversion 倒置的接口所有權 
Dependence on Abstractions 依賴于抽象 
 A Simple DIP Example 簡單的DIP示例 
Finding the Underlying Abstraction 找出潛在的抽象 
 The Furnace Example 熔爐示例 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 12:The Interface Segregation Principle(ISP) ISP:接口隔離原則 
 Interface Pollution 接口污染 
 Separate Clients Mean Separate Interfaces 分離客戶就是分離接口 
 Class Interfaces versus Object Interfaces 類接口與對象接口 
Separation Through Delegation 使用委托分離接口 
Separation Through Multiple Inheritance 使用多重繼承分離接口 
 The ATM User Interface Example ATM用戶界面的例子 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 13:Overview of UML for C# Programmers C#程序員UML概觀 
 Class Diagrams 類圖 
 Object Diagrams 對象圖 
 Sequence Diagrams 順序圖 
 Collaboration Diagrams 協作圖 
 State Diagrams 狀態圖 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 14:Working with Diagrams 使用UML 
 Why Model? 為什么建模 
Why Build Models of Software? 為什么構建軟件模型 
Should We Build Comprehensive Designs Before Coding? 編碼前應該構建面面俱到的設計嗎 
 Making Effective Use of UML 有效使用UML 
Communicating with Others 與他人交流 
Road Maps 脈絡圖 
Back-End Documentation 項目結束文檔 
What to Keep and What to Throw Away 要保留的和要丟棄的 
 Iterative Refinement 迭代式改進 
Behavior First 行為優先 
Check the Structure 檢查結構 
Envisioning the Code 想象代碼 
Evolution of Diagrams 圖的演化 
 When and How to Draw Diagrams 何時以及如何繪制圖示 
When to Draw Diagrams and When to Stop 何時要畫圖,何時不要畫圖 
CASE Tools CASE工具 
But What About Documentation? 那么,文檔呢 
 Conclusion 結論 
Chapter 15 State Diagrams 狀態圖 
 The Basics 基礎知識 
Special Events 特定事件 
Superstates 超狀態 
Initial and Final Pseudostates 初始偽狀態和結束偽狀態 
 Using FSM Diagrams 使用FSM圖示 
 Conclusion 結論 
Chapter 16:Object Diagrams 對象圖 
 A Snapshot in Time 即時快照 
 Active Objects 主動對象 
 Conclusion 結論 
Chapter 17:Use Cases 示例 
 Writing Use Cases 編寫用例 
Alternate Courses 備選流程 
What Else? 其他東西呢 
 Diagramming Use Cases 用例圖 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 18:Sequence Diagrams 順序圖 
 The Basics 基礎知識 
Obj ects,Lifelines,Messages,and Other Odds and Ends 對象、生命線、消息及其他 
Creation and Destruction 創建和析構 
Simple Loops 簡單循環 
Cases and Scenarios 時機和場合 
 Advanced Concepts 高級概念 
Loops and Conditions 循環和條件 
Messages That Take Time 耗費時間的消息 
Asynchronous Messages 異步消息 
Multiple Threads 多線程 
Active Objects 主動對象 
Sending Messages to Interfaces 向接口發送消息 
 Conclusion 結論 
Chapter 19:Class Diagrams 類圖 
 The Basics 基礎知識 
Classes 類 
Association 關聯 
Inheritance 繼承 
 An Example Class Diagram 類圖示例 
 The Details 細節 
Class Stereotypes 類衍型 
Abstract Classes 抽象類 
Properties 屬性 
Aggregation 聚集 
Composition 組合 
Multiplicity 多重性
Association Stereotypes 關聯衍型 
Nested Classes 內嵌類 
Association Classes 關聯類 
Association Qualifiers 關聯修飾符 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 20 Heuristics and C0ffee 咖啡的啟示 
 The Mark IV Special Coffee Maker Mark IV型專用咖啡機 
Specification 規格說明書 260
A Common but Hideous Solution 常見的丑陋方案 
Imaginary Abstraction 虛構的抽象 
An Improved Solution 改進方案 
Implementing the Abstract Model 實現抽象模型 
The Benefits of This Design 這個設計的好處 
 Ooverkill 面向對象過度設計 
 Bibliography 參考文獻 
Section Ⅲ The Payroll Case Study 薪水支付案例研究 
 Rudimentary Specification of the Payroll System 薪水支付系統的初步規格說明 
Exercise 練習 
Use Case 1:Add New Employee 用例1:增加新雇員 
Use Case 2:Deleting an Employee 用例2:刪除雇員 
Use Case 3:Post a Time Card 用例3:登記考勤卡 
Use Case 4:Posting a Sales Receipt 用例4:登記銷售憑條 
Use Case 5:Posting a Union Service Charge 用例5:登記工會服務費 
Use Case 6:Changing Employee Details 用例6:更改雇員明細 
Use Case 7:Run the Payroll for Today 用例7:現在運行薪水支付系統 
Chapter 21:Command and Active Object:Versatility and Multitasking COMMAND模式和ACTlVE OBJECT模式:多功能與多任務 
 Simple Commands 簡單的Command 
Transactions 事務 
Physical and Temporal Decoupling 實體上解耦和時間上解耦 
Temporal Decoupling 時間上解耦 
 Undo Method Undo()方法 
 Active Object ACTIVE OBJECT模式 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 22:Template Method and Strategy:Inheritance versus Delegation TEMPLATE METHOD模式和STRATEGY模式:繼承和委托 
 Template Method TEM PLATE METHOD模式 
Pattern Abuse 濫用模式 
Bubble Sort 冒泡排序 
 Strategy STRATEGY模式 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 23:Facade and Mediator FACAD E模式和MEDIATOR模式 
 Facade FACADE模式 
 Mediator MEDIATOR模式 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 24:Singleton and Monostate SINGLETON模式和MONOSTATE模式 
 Singleton SINGLETON模式 
Benefits SINGLETON模式的好處 
Costs SINGLETON模式的代價 
Singleton in Action 運用SINGLETON模式 
 Monostate MONOSTATE模式 
Benefits MONOSTATE模式的好處 
Costs MONOSTATE模式的代價 
Monostate in Action 運用MONOSTATE模式 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 25:Null Object NULL OBJECT 
 Description 描述 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 26:The Payroll Case Study:Iteration 1 薪水支付案例研究:第一次迭代開始 
 Rudimentary Specification 初步的規格說明 
 Analysis by Use Cases 基于用例分析 
Adding Employees 增加新雇員 
Deleting Employees 刪除雇員 
Posting Time Cards 登記考勤卡 
Posting Sales Receipts 登記銷售憑條 
Posting a Union Service Charge 登記工會服務費 
Changing Employee Details 更改雇員明細 
Payday 發薪日 
 Reflection:Finding the Underlying Abstractions 反思:找出底層的抽象 
Employee Payment 雇員支付類別抽象 
Payment Schedule 支付時間表抽象 
Payment Methods 支付方式
Affiliations 從屬關系
 Conclusion 結論 
 Bibliography 參考文獻
Chapter 27:The Payroll Case Study:Implementation 薪水支付案例研究:實現 
 Transactions 事務
Adding Employees 增加雇員
Deleting Employees 刪除雇員
Time Cards,Sales Receipts,and Service Charges 考勤卡、銷售憑條以及服務費用
Changing EmplOyees 更改雇員屬性
What Was I Smoking? 犯了什么暈 
Paying Employees 支付雇員薪水 
Paying Salaried Employees 支付領月薪的雇員薪水
Paying Hourly Employees 支付鐘點工薪水 
 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 組件的內聚性原則:粒度 
The Reuse/Release Equivalence Principle(REP) 重用-發布等價原則 
The Common Reuse Principle(CRP) 共同重用原則 
The Common Closure Principle(CCP) 共同封閉原則 
Summary of Component Cohesion 組件內聚性總結 
 Principles of Component Coupling:Stability 組件的耦合陛原則:穩定性 
The Acyclic Dependencies Principle(ADP) 無環依賴原則 
The Stable-Dependencies Principle(SDP) 穩定依賴原則 
The Stable-Abstractions Principle(SAP) 穩定抽象原則
 Conclusion 結論
Chapter 29:Factory FACTORY模式
 A Dependency Problem 依賴問題 
 Static versus Dynamic Typing 靜態類型與動態類型 
 SubStitutable Factories 可替換的工廠
 Using Factories for TIest Fixtures 對測試支架使用對象工廠
 Importance of Factories 工廠的重要性 
 Conclusion 結論
 Bibliography 參考文獻 
Chapter 30:The Payroll Case Study:Package Analysis 薪水支付案例研究:包分析
 Component Structure and Notation 組件結構和符號
 Applying the Common Closure Principle(CCP) 應用CCP
 Applying the Reuse/Release Equivalence Principle(REP) 應用REP
 Coupling and Encapsulation 耦合和封裝 
 Metrics 度量 
 Applying the Metrics to the Payroll Application 度量薪水支付應用程序
Object Factories 對象工廠 
Rethinking the Cohesion Boundaries 重新思考內聚的邊界 
 The Final Packaging Structure 最終的包結構 
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 31:Composite COMPOSITE模式
 Composite Commands 組合命令 
 Multiplicity or No Multiplicity 多重性還是非多重性 
 Conclusion 結論
Chapter 32:Observer:Evolving into a Pattern OBSERVER——演化至模式 
 The Digital Clock 數字時鐘
 The Observer Pattern OBSERVER模式 
Models 模型 
Management of OOD Principles 面向對象設計原則的運用
 Conclusion 結論 
 Bibliography 參考文獻 
Chapter 33:Abstract Server,Adapter,and Bridge ABSTRACTSERVER模式、ADAPTER模式和BRIDGE模式 
 Abstract Server ABSTRACT SERVER模式 
 Adapter ADAPTER模式
The Class Form of Adapter 類形式ADAPTER模式
The Mode,m Problem,Adapters,and LSP 調制解調器問題、適配器以及LSP 
 Bridge BRIDGE模式 
 Conclusion 結論
 Bibliography 參考文獻 
Chapter 34:Proxy and Gateway:Managing Third-Party APIs PROXY模式和GATEWAY模式:管理第三方API Proxy PROXY 模式 
Implementing Proxy 實現PROXY模式 
Summary 小結
 Databases,Middleware,and Other Third.Party Interfaces 數據庫、中間件以及其他第三方接口
 Table Data Gateway TABLE DATA GATEWAY
Testing and In.Memory TDGs 測試和內存TDG 
Testing the DB Gateways 測試DbGateWay 
 Using Other Patterns with Databases 可以用于數據庫的其他模式 
 Conclusion 結論 
 Bibliography 參考文獻
Chapter 35:Visitor VISITOR模式
 VISITOR VISITOR模式 
 Acyclic Visitor ACYCLIC VISITOR模式
Uses of VISITOR 使用VISITOR模式 
 Decorator DECORATOR模式 
 Extension Object EXTENSION OBJECT模式 
 Conclusion 結論
 Bibliography 參考文獻
Chapter 36:State STATE模式
 Nested Switch/Case Statements 嵌套switch/case語句 
The Internal Scope State Variable 內部作用域的狀態變量
Testing the Actions 測試動作 
Costs and Benefits 代價和收益
 Transition Tables 遷移表
Using Table Interpretation 使用表解釋 
Costs and Benefits 代價和收益
 The State Pattern STATE模式
State versus Strategy STATE模式和STRATEGY模式
Costs and Benefits 代價和收益 
 The State Machine Compiler(SMC) 狀態機編譯器 
Turnstile.CS Generated by SMC,and Other Support Files SMC生成的Turnstile.CS以及其他支持文件 593
Costs and Benefits 代價和收益 
 Classes of State Machine Application 狀態機應用的場合
High-Level Application Policies for GUIs 作為GUI中的高層應用策略 
GUI Interaction Controllers GUI交互控制器
Distributed Processing 分布式處理
 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 加載Employee對象 
 What Remains? 還有什么工作 
Chapter 38:The Payroll User Interface:Model View Presenter 薪水支付系統用戶界面:Model-View-Presenter 
 The Interface 界面 
 Implementation 實現 
 Building a Window 構建窗口
 The Payroll Window Payroll 窗口
 The Unveiling 真面目
 Conclusion 結論 
 Bibliography 參考文獻
Appendix A:A Satire of Two Companies 雙公司記 
 Rufus Inc.:Proj ect Kickoff Rufus公司:“日落”項目 671 Rupert Industries:Project Alpha Rupert工業公司:“朝暉”項目 
Appendix B:What Is Software? 什么是軟件
Index索引

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
絕版無法訂購

暢銷榜

客服中心

收藏

會員專區