1. 程式人生 > >大話重構連載首頁

大話重構連載首頁

ooo 我們 family 不能 blank 順序 關系 trac 工廠

《大話重構》這本書是我寫的第一本書,從今天起我將通過連載的形式逐漸跟大家分享。

技術分享

這本書讓你:
告別遊擊隊轉變為正規軍。
遠離劣質代碼走向精妙設計
真正明確專業級的軟件開發是如何的
真正明確重構是如何一步一步進行的
高效重構七步曲。面對實踐不卡殼
讓遺留系統維護不再是你的夢魘
讀完這本書以後:
需求變更不再糾結。重構讓你潤物細無聲地容納它們
超越代碼級的重構,從各個層面深度領略重構之美
自己主動化測試不再是夢想。重構讓自己主動化測試走你
又一次審視熟悉而陌生的技術。將碎了一地的它們又一次鉚合在一起

本書的文件夾:
遺留系統——軟件工業時代的痛
第一部分 基礎篇
重構,一個既熟悉又陌生的名詞。

在這裏,我首先給你詮釋一個全然不同的重構,讓你又一次理解一個最熟悉的陌生技術:
第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 自己主動化測試——想說愛你不easy
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
我已經是一個重構的實踐者了,但重構真的讓我想說愛你不easy,太多太多的難題讓我困惑讓我煩惱。

這裏,讓一個重構多年的實踐者給你解惑吧:
第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

大話重構連載首頁