
《大話重構》這本書是我寫的第一本書,從今天起我將通過連載的形式逐漸跟大家分享。
這本書讓你:
告別游擊隊轉變為正規軍,
遠離劣質代碼走向精妙設計
真正明白專業級的軟件開發是怎樣的
真正明白重構是怎樣一步一步進行的
高效重構七步曲,面對實踐不卡殼
讓遺留系統維護不再是你的夢魘
讀完這本書以后:
需求變更不再糾結,重構讓你潤物細無聲地容納它們
超越代碼級的重構,從各個層面深度領略重構之美
自動化測試不再是夢想,重構讓自動化測試走你
重新審視熟悉而陌生的技術,將碎了一地的它們重新鉚合在一起
本書的目錄:
遺留系統——軟件工業時代的痛
第一部分 基礎篇
重構,一個既熟悉又陌生的名詞。在這里,我首先給你詮釋一個完全不同的重構,讓你重新理解一個最熟悉的陌生技術:
第1章 重構:改變既有代碼的一劑良藥
1.1 什么是系統重構
1.2 在保險索上走鋼絲
1.3 大布局與小步快跑
1.4 軟件修改的四種動機
1.5 一個真實的謊言
第2章 重構方法工具箱
2.1 重構是一系列的等量變換——第一次HelloWorld重構
2.2 盤點我們的重構工具箱——對HelloWorld抽取類和接口
第3章 小步快跑的開發模式
3.1 大布局你傷不起
3.2 小設計而不是大布局
3.3 小步快跑是這樣玩的——HelloWorld重構完成
第4章 保險索下的系統重構
4.1 你不能沒有保險索
4.2 自動化測試——想說愛你不容易
4.3 我們是這樣自動化測試的——JUnit下的HelloWorldTest
4.4 采用Mock技術完成測試
第二部分 實踐篇
當你充滿激情地準備實踐重構時,卻發現自己在邁出第一步就卡殼了,有木有?高效可行的重構七步,讓你面對實踐不卡殼:
第5章 第一步:從分解大函數開始
5.1 超級大函數——軟件退化的重災區
5.2 抽取方法的實踐
5.3 最常見的問題
第6章 第二步:拆分大對象
6.1 大對象的演化過程
6.2 大對象的拆分過程——抽取類與職責驅動設計 49
6.3 SRP原則與對象拆分 50
6.4 合久必分,分久必合——類的歸并 52
第7章 第三步:提高代碼復用率 54
7.1 順序編程的煩惱 54
7.2 代碼重復與DRY原則 55
7.3 提高代碼復用的方法 56
7.3.1 當重復代碼存在于同一對象中時——抽取方法
7.3.2 當重復代碼存在于不同對象中時——抽取類
7.3.3 不同對象中復用代碼的另一種方法——封裝成實體類
7.3.4 當代碼所在的類具有某種并列關系時——抽取父類
7.3.5 當出現繼承泛濫時——將繼承轉換為組合
7.3.6 當重復代碼被割裂成碎片時——繼承結合模板模式
7.4 代碼重復的檢查工具 64
第8章 第四步:發現程序可擴展點 64
8.1 開放-封閉原則(OCP)與可擴展點設計 65
8.2 過程的擴展與放置鉤子——運用模板模式增加可擴展點 68
8.3 面向切面的可擴展設計 71
8.4 其它可擴展設計 74
第9章 第五步:降低程序依賴度 78
9.1 接口、實現與工廠模式 79
9.1.1 徹底理解工廠模式和依賴反轉原則
9.1.2 工廠模式在重構中的實際運用
9.2 外部接口與適配器模式——與外部系統解耦 84
9.3 繼承的泛濫與橋接模式 87
9.4 方法的解耦與策略模式 90
9.5 過程的解耦與命令模式 93
9.6 透明的功能擴展與設計——組合模式與裝飾者模式 95
第10章 第六步:我們開始分層了 102
10.1 什么才是我們需要的分層 102
10.2 怎樣才能擁抱需求的變化 104
10.3 貧血模型與充血模型 108
10.4 我們怎樣面對技術的變革 111
第11章 一次完整的重構過程 113
11.1 第一步:分解大函數 113
11.2 第二步:拆分大對象 115
11.3 第三步:提高復用率 116
11.4 第四步:發現擴展點 117
11.5 第五步:降低依賴度 119
11.6 第六步:分層 120
11.7 第七步:領域驅動設計 121
第三部分 進階篇 123
我已經是一個重構的實踐者了,但重構真的讓我想說愛你不容易,太多太多的難題讓我困惑讓我煩惱。這里,讓一個重構多年的實踐者給你解惑吧:
第12章 什么時候重構 123
12.1 重構是一種習慣 123
12.2 重構讓程序可讀 125
12.3 重構,才好復用 126
12.4 先重構,再擴展 127
12.5 變更任務緊急時,又該如何重構 129
第13章 測試驅動開發 131
13.1 測試驅動開發(TDD) vs. 后測試開發(TAD) 131
13.2 測試驅動開發與重構 134
13.3 遺留系統怎樣開展TDD 142
第14章 全面的升級任務 144
14.1 計劃式設計VS演進式設計 144
14.2 風險驅動設計 146
14.3 制定系統重構計劃 148
第15章 我們怎樣擁抱變化 149
15.1 領域才是軟件系統的“心”——工資軟件的三次設計演變 149
15.2 領域模型分析方法 155
15.3 原文分析法 157
15.4 領域驅動設計——使用領域模型與客戶一起設計 160
15.5 在遺留系統中的應用 164
第16章 測試的困境 166
16.1 重構初期的困局 167
16.2 解耦與自動化測試 168
16.3 誰來寫自動化測試程序? 171
16.4 建立自動化測試體系 174
第17章 系統重構的評價 175
17.1 評價軟件質量的指標 175
17.2 怎樣評價軟件質量呢 178
結束語:重構改變了世界 181
附錄:重構方法速查手冊 182
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
