C# 敏捷開發實踐 C#敏捷开发实践

[英]加里·麥克萊恩·霍爾

已絕版

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

相關主題

商品描述

<內容介紹>

用戶的需求經常變化,每個開發者都深受其害。不過,如果能夠提高代碼的自適應性,就能更加輕鬆地響應變化,避免重複勞動。本書介紹了敏捷編程的best practice、原則和模式,能讓你編寫出靈活的自適應性代碼,從而創造更大的商業價值。

專家指導,幫你跨越理論和實踐之間的鴻溝

-熟練運用Scrum:工件、角色、度量標準、階段
-組織和管理架構的依賴關係
-回顧各種模式、反模式以及best practice
-掌握SOLID原則
-管理自適應代碼的各種接口應用方式
-先後進行單元測試和重構
-觀察委託和抽像如何影響代碼自適應性
-學習實現依賴註入的推薦方式
-將學到的知識應用於敏捷開發的實際項目

<章節目錄>

第一部分敏捷基礎
第1章Scrum介紹3
1.1 Scrum與瀑布4
1.2角色和職責6
1.2.1產品負責人7
1.2.2 Scrum主管7
1.2.3開發團隊8
1.2.4 “豬”和“雞” 8
1.3工件9
1.3.1 Scrum面板9
1.3.2圖表和度量標準20
1.3.3積壓工作24
1.4衝刺25
1.4.1發布計劃會議26
1.4.2衝刺計劃會議26
1.4.3每日站立會議28
1.4. 4衝刺演示會議29
1.4.5衝刺回顧會議30
1.4.6 Scrum日曆31
1.5 Scrum和敏捷的問題32
1.6總結36
第2章依賴和分層37
2.1依賴的定義38
2.1.1一個簡單的例子38
2.1 .2使用有向圖對依賴建模44
2.2依賴管理48
2.2.1實現與接口48
2.2.2 new代碼味道49
2.2.3對象構造的替代方法52
2.2.4隨從反模式54
2.2.5階梯模式56
2.2.6依賴解析57
2.2.7使用NuGet管理依賴67
2.3分層70
2.3.1常見的模式71
2.3.2縱切關註點76
2.3.3非對稱分層77
2.4總結79
第3章接口和設計模式80
3.1接口是什麼80
3.1.1語法80
3.1.2顯式實現83
3.1.3多態87
3.2自適應設計模式88
3.2.1空對像模式88
3.2.2適配器模式94
3.2.3策略模式96
3.3更多形式98
3.3.1鴨子類型98
3.3.2混合類型102
3.3.3流接口106
3.4總結108
第4章單元測試和重構109
4.1單元測試109
4.1.1佈置、動作和斷言110
4.1 .2測試驅動開發113
4.1.3更複雜的測試118
4.2重構131
4.2.1更改已有代碼131
4.2.2一個新的賬戶類型139
4.3總結144
第二部分編寫SOLID代碼
第5章單一職責原則147
5.1問題描述147
5.1.1重構清晰度150
5.1.2重構抽象153
5.2單一職責原則和修飾器模式160
5.2.1複合模式162
5.2.2謂詞修飾器165
5.2.3分支修飾器168
5.2 .4延遲修飾器169
5.2.5日誌記錄修飾器170
5.2.6性能修飾器172
5.2.7異步修飾器175
5.2.8修飾屬性和事件177
5.3用策略模式替代switch語句178
5.4總結180
第6章開放與封閉原則181
6.1開放與封閉原則介紹181
6.1.1 Meyer的定義181
6.1.2 Martin的定義181
6.1.3缺陷修復182
6.1.4客戶端感知182
6.2擴展點183
6.2.1沒有擴展點的代碼183
6.2.2虛方法184
6.2.3抽象方法184
6.2.4接口繼承185
6.2.5 “為繼承設計或禁止繼承” 186
6.3防止變異186
6.3.1可預見的變化187
6.3.2一個穩定的接口187
6.3.3足夠的自適應能力187
6.4總結188
第7章Liskov替換原則189
7.1 Liskov替換原則介紹189
7.1.1正式定義189
7.1.2 Liskov替換原則的規則190
7.2契約190
7.2.1前置條件192
7.2.2後置條件193
7.2.3數據不變式194
7.2.4 Liskov契約規則195
7.2.5代碼契約201
7.3協變和逆變208
7.3.1定義208
7.3.2 Liskov類型系統規則213
7.4總結216
第8章接口分離原則217
8.1一個分離接口的示例217
8.1.1一個簡單的CRUD接口217
8.1.2緩存223
8.1.3多重接口修飾226
8.2客戶端構建228
8.2.1多實現、多實例229
8.2.2單實現、單實例231
8.2.3超級接口反模式232
8.3接口分離233
8.3.1客戶端需要233
8.3.2架構需要239
8.3.3單方法接口243
8.4總結244
第9章依賴註入原則245
9.1簡單的開始245
9.1.1任務列表應用248
9.1.2對像圖的構建250
9.1.3控制反轉254
9.2比較複雜的註入267
9.2.1服務定位器反模式267
9.2.2非法註入270
9.2.3組合根272
9.2.4約定優於配置277
9.3總結280
第三部分自適應實例
第10章自適應實例簡介284
10.1 Trey Research公司284
10.1.1團隊284
10.1.2產品286
10.2最初的產品積壓工作287
10.2.1從描述中挖掘故事287
10.2.2故事點估算288
10.3總結292
第11章自適應實例衝刺1 293
11.1計劃會議293
11.2 “我想創建多個房間以對會話進行分類” 295
11.2.1控制器295
11.2.2房間存儲庫299
11.3 “我想查看代表會話的房間的列表” 303
11.4 “我想查看發送到一個房間內的消息” 307
11.5 “我想給房間內的其他成員發送純文本消息” 309
11.6演示會議311
11.7回顧會議311
11.7.1什麼做得比較好312
11.7.2什麼做得不太好312
11.7.3什麼需要改變313
11.7.4什麼需要保持314
11.7. 5遇到了什麼意料之外的事情314
11.8總結315
第12章自適應實例衝刺2 316
12.1計劃會議316
12.2 “我想發送正確格式化的標記” 317
12.3 “我想過濾消息內容以確保它是適合發表的” 321
12.4 “我想同時服務數百個用戶” 323
12.5演示會議325
12.6回顧會議326
12.6.1什麼做得比較好326
12.6.2什麼做得不太好327
12.6.3什麼需要改變327
12.6.4什麼需要保持327
12.6.5遇到了什麼意料之外的事情327
12.7總結328
附錄自適應工具329