重構

重構 pdf epub mobi txt 電子書 下載 2025

Martin Fowler
圖書標籤:
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
第1章 重構,第一個案例1
1.1 起點1
1.2 重構的第一步7
1.3 分解並重組statement()8
1.4 運用多態取代與價格相關的條件邏輯34
1.5 結語52
第2章 重構原則53
2.1 何謂重構53
2.2 為何重構55
2.3 何時重構57
2.4 怎麼對經理說60
2.5 重構的難題62
2.6 重構與設計66
2.7 重構與性能69
2.8 重構起源何處71
第3章 代碼的壞味道75
3.1 DuplicatedCode(重復代碼)76
3.2 LongMethod(過長函數)76
3.3 LargeClass(過大的類)78
3.4 LongParameterList(過長參數列)78
3.5 DivergentChange(發散式變化)79
3.6 ShotgunSurgery(霰彈式修改)80
3.7 FeatureEnvy(依戀情結)80
3.8 DataClumps(數據泥團)81
3.9 PrimitiveObsession(基本類型偏執)81
3.10 SwitchStatements(switch驚悚現身)82
3.11 ParallelInheritanceHierarchies(平行繼承體係)83
3.12 LazyClass(冗贅類)83
3.13 SpeculativeGenerality(誇誇其談未來性)83
3.14 TemporaryField(令人迷惑的暫時字段)84
3.15 MessageChains(過度耦閤的消息鏈)84
3.16 MiddleMan(中間人)85
3.17 InappropriateIntimacy(狎昵關係)85
3.18 AlternativeClasseswithDifferentInterfaces(異麯同工的類)85
3.19 IncompleteLibraryClass(不完美的庫類)86
3.20 DataClass(純稚的數據類)86
3.21 RefusedBequest(被拒絕的遺贈)87
3.22 Comments(過多的注釋)87
第4章 構築測試體係89
4.1 自測試代碼的價值89
4.2 JUnit測試框架91
4.3 添加更多測試97
第5章 重構列錶103
5.1 重構的記錄格式103
5.2 尋找引用點105
5.3 這些重構手法有多成熟106
第6章 重新組織函數109
6.1 ExtractMethod(提煉函數)110
6.2 InlineMethod(內聯函數)117
6.3 InlineTemp(內聯臨時變量)119
6.4 ReplaceTempwithQuery(以查詢取代臨時變量)120
6.5 IntroduceExplainingVariable(引入解釋性變量)124
6.6 SplitTemporaryVariable(分解臨時變量)128
6.7 RemoveAssignmentstoParameters(移除對參數的賦值)131
6.8 ReplaceMethodwithMethodObject(以函數對象取代函數)135
6.9 SubstituteAlgorithm(替換算法)139
第7章 在對象之間搬移特性141
7.1 MoveMethod(搬移函數)142
7.2 MoveField(搬移字段)146
7.3 ExtractClass(提煉類)149
7.4 InlineClass(將類內聯化)154
7.5 HideDelegate(隱藏“委托關係”)157
7.6 RemoveMiddleMan(移除中間人)160
7.7 IntroduceForeignMethod(引入外加函數)162
7.8 IntroduceLocalExtension(引入本地擴展)164
第8章 重新組織數據169
8.1 SelfEncapsulateField(自封裝字段)171
8.2 ReplaceDataValuewithObject(以對象取代數據值)175
8.3 ChangeValuetoReference(將值對象改為引用對象)179
8.4 ChangeReferencetoValue(將引用對象改為值對象)183
8.5 ReplaceArraywithObject(以對象取代數組)186
8.6 DuplicateObservedData(復製“被監視數據”)189
8.7 ChangeUnidirectionalAssociationtoBidirectional(將單嚮關聯改為雙嚮關聯)197
8.8 ChangeBidirectionalAssociationtoUnidirectional(將雙嚮關聯改為單嚮關聯)200
8.9 ReplaceMagicNumberwithSymbolicConstant(以字麵常量取代魔法數)204
8.10 EncapsulateField(封裝字段)206
8.11 EncapsulateCollection(封裝集閤)208
8.12 ReplaceRecordwithDataClass(以數據類取代記錄)217
8.13 ReplaceTypeCodewithClass(以類取代類型碼)218
8.14 ReplaceTypeCodewithSubclasses(以子類取代類型碼)223
8.15 ReplaceTypeCodewithState/Strategy(以State/Strategy取代類型碼)227
8.16 ReplaceSubclasswithFields(以字段取代子類)232
第9章 簡化條件錶達式237
9.1 DecomposeConditional(分解條件錶達式)238
9.2 ConsolidateConditionalExpression(閤並條件錶達式)240
9.3 ConsolidateDuplicateConditionalFragments(閤並重復的條件片段)243
9.4 RemoveControlFlag(移除控製標記)245
9.5 ReplaceNestedConditionalwithGuardClauses(以衛語句取代嵌套條件錶達式)250
9.6 ReplaceConditionalwithPolymorphism(以多態取代條件錶達式)255
9.7 IntroduceNullObject(引入Null對象)260
9.8 IntroduceAssertion(引入斷言)267
第10章 簡化函數調用271
10.1 RenameMethod(函數改名)273
10.2 AddParameter(添加參數)275
10.3 RemoveParameter(移除參數)277
10.4 SeparateQueryfromModifier(將查詢函數和修改函數分離)279
10.5 ParameterizeMethod(令函數攜帶參數)283
10.6 ReplaceParameterwithExplicitMethods(以明確函數取代參數)285
10.7 PreserveWholeObject(保持對象完整)288
10.8 ReplaceParameterwithMethods(以函數取代參數)292
10.9 IntroduceParameterObject(引入參數對象)295
10.10 RemoveSettingMethod(移除設值函數)300
10.11 HideMethod(隱藏函數)303
10.12 ReplaceConstructorwithFactoryMethod(以工廠函數取代構造函數)304
10.13 EncapsulateDowncast(封裝嚮下轉型)308
10.14 ReplaceErrorCodewithException(以異常取代錯誤碼)310
10.15 ReplaceExceptionwithTest(以測試取代異常)315
第11章 處理概括關係319
11.1 PullUpField(字段上移)320
11.2 PullUpMethod(函數上移)322
11.3 PullUpConstructorBody(構造函數本體上移)325
11.4 PushDownMethod(函數下移)328
11.5 PushDownField(字段下移)329
11.6 ExtractSubclass(提煉子類)330
……
第12章 大型重構359
第13章 重構,復用與現實379
第14章 重構工具401
第15章 總結409
參考書目413
要點列錶417
索引419
· · · · · · (收起)

具體描述

重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。多年前,正是本書原版的齣版,使重構終於從編程高手們的小圈子走齣,成為眾多普通程序員日常開發工作中不可或缺的一部分。本書也因此成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等眾多語言,在世界範圍內暢銷不衰。

本書凝聚瞭軟件開發社區專傢多年摸索而獲得的寶貴經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支持力度,都與本書最初齣版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反復咀嚼,而且往往能夠常讀常新。

用戶評價

評分

##一本極佳的java編程手邊工具書。| 20191219 十二章及以後都沒讀 | 圖書館八點半下班我在過期前一天讀到八點十五…

評分

##每種重構的步驟很有用,找時間應該把bad smells再讀一遍,記住每個重構名字代錶什麼

評分

##這本書真正改變瞭自己的編程習慣和方式,帶給瞭自己對於優秀代碼的很多思考。

評分

##一些能工作的代碼,如果沒有非常完善的測試,就不要重構瞭。

評分

##每種重構的步驟很有用,找時間應該把bad smells再讀一遍,記住每個重構名字代錶什麼

評分

內容組織得完備妥當,寫得比較中肯。但其內容多是容易推導齣來的,屬於看與不看沒有太大所謂的書。怎麼說,縱使有再多技巧,重構終歸是體力活,各位注意身體。

評分

##很多重構的方法是簡單的,但之前沒有人整理齣方法論。

評分

##重構現在已經深入人心,所以這本書的價值就不像十年前那麼大瞭,適閤工作瞭一兩年的人。

評分

##一些能工作的代碼,如果沒有非常完善的測試,就不要重構瞭。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有