設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)

設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)

作者: Girish Suryanarayana Ganesh Samarthyam Tushar Sharma 袁國忠 譯
出版社: 博碩文化
出版在: 2021-10-05
ISBN-13: 9789864345229
ISBN-10: 9864345222
裝訂格式: 平裝
總頁數: 272 頁





內容描述


[名家名著] 24

聞到它,找到它,消滅它!
還在被技術債追著跑嗎?
培養軟體嗅覺讓你無債一身輕!

本書重點介紹了技術債和一種確實可行的技術債管理方式,是一部名副其實的臭味實戰指南。
──Grady Booch(IBM 研究院院士兼軟體工程首席科學家)

本書是一部優秀作品,具有劃時代意義,值得每位專業人員閱讀。
──Stéphane Ducasse(軟體分析和軟體再造工程專家)

改變很難卻又不可避免。生活如此,軟體亦如此。為滿足用戶不斷增長的需求,軟體必須不斷演化。有鑑於軟體的無形特徵,要管理這種不斷的變化很難。其典型的結果是軟體品質低下和巨額技術債。

本書介紹25種結構型設計臭味及其有助於管理技術債的重構建議。我們認為遵循軟體設計原則是開發高品質軟體的關鍵。有鑑於此,我們根據4個基本設計原則來撰寫本書介紹的臭味。根據臭味違反的具體原則對其進行命名。介紹每種臭味時,我們會指出它違反的原則、討論一些可能導致該臭味的因素,並列出該臭味可能影響的重要品質指標,讓讀者知道設計所欠下的技術債。

描述每種臭味時,我們還提供了真實的範例以及業界專案經驗的趣聞軼事。對於每個範例,都提供了消除其臭味的可能重構解決方案。我們認為,要判斷臭味的影響,必須考慮設計的具體情況。因此,我們也介紹了由於條件限制(如語言或平台的侷限性)或出於大局上的考量而有意識地引入臭味的情形,使本書的立論更加周延。

本書內容
●包含25個結構設計臭味的詳盡目錄(根據4種基本設計原則做分類),有助於處理軟體專案中的技術債。
●將各種臭味以獨特命名的手法,幫助理解臭味引起的成因以及重構的可能方案。
●使用插圖範例來呈現糟糕設計實踐中,所隱含的臭味以及它造成的問題。
●囊括實用的重構技巧以改善設計臭味並管理技術債,並在實踐中創造軟體的高度品質並加以維持。
●佐以實際範例以及業界專案經驗的趣聞軼事。

本書適合軟體架構師和設計人員、軟體開發人員、專案經理、學習軟體設計的學生。

目錄大綱


獻詞
推薦序一
推薦序二
總編序
編輯序
前言
致謝

CHAPTER 1 技術債
1.1 何謂技術債
1.2 技術債的組成部分
1.3 技術債的影響
1.4 引發技術債的因素
1.5 如何管理技術債

CHAPTER 2 設計臭味
2.1 為何要關心臭味
2.2 導致臭味的原因
2.3 如何消除臭味
2.4 本書涵蓋的臭味
2.5 一種設計臭味分類方案

CHAPTER 3 抽象型臭味
3.1 缺失抽象
3.2 命令式抽象
3.3 不完整的抽象
3.4 多方面抽象
3.5 不必要的抽象
3.6 未利用的抽象
3.7 重複的抽象

CHAPTER 4 封裝型臭味
4.1 不充分的封裝
4.2 洩露的封裝
4.3 缺失封裝
4.4 未利用的封裝

CHAPTER 5 模組化型臭味
5.1 拆散的模組化
5.2 不充分的模組化
5.3 循環依賴式模組化
5.4 輪轂式模組化

CHAPTER 6 層次結構(hierarchy)型臭味
6.1 缺失 hierarchy
6.2 不必要的 hierarchy
6.3 未合併的 hierarchy
6.4 過寬的 hierarchy
6.5 憑空想像的 hierarchy
6.6 過深的 hierarchy
6.7 叛逆型 hierarchy
6.8 支離破碎的 hierarchy
6.9 多路徑 hierarchy
6.10 循環 hierarchy

CHAPTER 7 臭味生態系統
7.1 具體情況的影響
7.2 臭味的相互影響

CHAPTER 8 技術債償還實戰
8.1 工具
8.2 流程
8.3 人員

APPENDIX A 軟體設計原則
 A.1 抽象原則(ABSTRACTION)
 A.2 非循環依賴原則(ADP)
 A.3 不自我重複原則
 A.4 封裝原則
 A.5 資訊隱藏原則
 A.6 保持簡單原則
 A.7 里氏替換原則
 A.8 Hierarchy 原則
 A.9 模組化原則
 A.10 開放封閉原則
 A.11 單一職責原則
 A.12 變化封裝原則
APPENDIX B 技術債償還工具
APPENDIX C 示意圖使用的表示法
APPENDIX D 推薦讀物
 D.1 基礎知識
 D.2 重構和再造
 D.3 模式和反模式
 D.4 技術債

參考文獻


作者介紹


Girish Suryanarayana
在印度Bangalore的Siemens科技公司之中,擔任研究與技術中心的高階研究科學家。

Ganesh Samarthyam
CodeOps科技公司的創始人之一。在印度Bangalor當地從事獨立顧問、企業培訓師的工作。

Tushar Sharma
在印度Bangalore的Siemens科技公司之中,擔任研究與技術中心的技術專家。




相關書籍

Succeeding with Agile: Software Development Using Scrum (Paperback)

作者 Mike Cohn

2021-10-05

The Scrum Fieldbook: A Master Class on Accelerating Performance, Getting Results, and Defining the Future

作者 Sutherland J. J.

2021-10-05

Pragmatic Guide to Subversion (Paperback)

作者 Mike Mason

2021-10-05