[賞書] 重構-改善既有程式的設計

看板Soft_Job作者 (累人啊....)時間13年前 (2012/08/18 15:15), 編輯推噓14(14033)
留言47則, 16人參與, 最新討論串1/2 (看更多)
@書名:(請盡量寫正確的全名) 重構-改善既有程式的設計 @書本類型:(繁體書、簡體書、翻譯書、英文書) 翻譯書(繁體書) @購買時間:(約略就好~) 2012 2月....吧 @購買地點: 實體書店(新竹) @連結:(請至少附上一個參考連結,方便使用者找尋、購買。) http://www.tenlong.com.tw/items/9861547533?item_id=45657 @入手方式:借閱(圖書館、親友)、購買、交換 購買 @為什麼會買這本書? 某個版上看到推薦 @讀完有任何感想?(請至少附上五十字感想) 超讚的,裡面包含了將近七十種重構的手法,目的在於讓原有的程式 看起來更為簡潔,以便於日後的維護,擴充等等,重點在於每個重構手法都不難 學習難度不高 (不過難是難在於實務上如何應用這些手法啦...) 比起其它進階的書在説明一些coding的手法(比如說template) 先學習重構的手法更為實用 原因在於即使使用了較高明的撰寫手法(如template) 其它人不見得看的懂(甚至沒學過),接手就不容易 但重構不同,好的重構結果,程式是很容易理解的 @覺得買得有價值嗎? Yes/No Yes @如果給一到五顆星,你給幾顆? (*****) ***** (註:如果要批評請就事論事,請勿出現人身攻擊。) 碁峰有些的書會標明難度,這一本的難度血條竟然是全滿!!! (STL也還沒那麼高.....) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.246.119.246

08/18 17:39, , 1F
這本蠻值得推薦的
08/18 17:39, 1F

08/18 17:39, , 2F
裡面還有一個重點是重構跟修改是兩種不同角色,不可混為一談
08/18 17:39, 2F

08/18 19:36, , 3F
推這本書 難度其實不高 但實用度卻是滿點
08/18 19:36, 3F

08/18 20:35, , 4F
最近才剛從圖書館借到這本
08/18 20:35, 4F

08/18 22:44, , 5F
好,去看看
08/18 22:44, 5F

08/19 00:14, , 6F
我一個高手同事也推薦這本書 只是都沒時間看><
08/19 00:14, 6F

08/19 00:15, , 7F
這本終於出現在這了ww
08/19 00:15, 7F

08/19 00:21, , 8F
看書不難但現實上的重構難上加難 大多數人都不敢動原有的
08/19 00:21, 8F

08/19 00:23, , 9F
原可以跑的程式 大多是政治問題 不過這本是增加功力必備
08/19 00:23, 9F

08/19 02:17, , 10F
這本真的很棒
08/19 02:17, 10F

08/19 04:36, , 11F
另一個比較特別的重點是,重構通常是加一層反腐敗層
08/19 04:36, 11F

08/19 04:37, , 12F
但把用不到的反腐敗層拿掉,也是另一種重要的重構
08/19 04:37, 12F

08/19 04:37, , 13F
後者感覺要比前者難得多啊..:P
08/19 04:37, 13F

08/19 07:33, , 14F
xD 我是建議搭配 prefactoring 一起看啦
08/19 07:33, 14F

08/19 11:48, , 15F
樓上是神人
08/19 11:48, 15F

08/19 11:51, , 16F
landlord可以說明一下嗎,不是很懂?
08/19 11:51, 16F

08/19 13:08, , 17F
adapter的意思嗎?只開放使用者會用到的部份?
08/19 13:08, 17F

08/19 14:09, , 18F
重構的重點通常有3種: 1.降低重複的程式碼; 2.解耦
08/19 14:09, 18F

08/19 14:09, , 19F
3.增加可維護性
08/19 14:09, 19F

08/19 14:09, , 20F
而解耦的部分,有一個通則:任何解耦都可以透過一層反腐敗
08/19 14:09, 20F

08/19 14:10, , 21F
層,來降低兩個物件之間的耦合程度
08/19 14:10, 21F

08/19 14:10, , 22F
IoC就是很標準的一種做法
08/19 14:10, 22F

08/19 14:10, , 23F
但當用OO或design pattern over design時, 就會發現
08/19 14:10, 23F

08/19 14:11, , 24F
系統中充斥著過多用不到的反腐敗層,這些為了不曾也不會
08/19 14:11, 24F

08/19 14:11, , 25F
發生的需求,所額外的設計,只會造成維護性的降低,增加
08/19 14:11, 25F

08/19 14:11, , 26F
架構的複雜度。
08/19 14:11, 26F

08/19 14:12, , 27F
所以重構,另一種角度是要去檢視系統是否存在這類設計
08/19 14:12, 27F

08/19 14:12, , 28F
雖然拔掉可能很快也很簡單,但已經為了彈性而設計的東西
08/19 14:12, 28F

08/19 14:12, , 29F
要拔掉時,通常面對的是人性的考驗,而不是技巧了
08/19 14:12, 29F

08/19 14:13, , 30F
這本書還有highlight出一個重點:不要看不起最簡單的重構
08/19 14:13, 30F

08/19 14:13, , 31F
技巧,例如renaming或extra method,雖然是最小的技巧
08/19 14:13, 31F

08/19 14:14, , 32F
卻是最實用,效用最高,風險最低的技巧
08/19 14:14, 32F

08/19 14:14, , 33F
不過看這本書,建議還是要先看得懂class diagram
08/19 14:14, 33F

08/19 14:47, , 34F
l大推文不錯xd可以用回文的啊!
08/19 14:47, 34F

08/19 14:50, , 35F
反腐敗層 的英文是什麼啊?google好像沒這個
08/19 14:50, 35F

08/19 16:02, , 36F
原文應該是layer of indirection,間接層
08/19 16:02, 36F

08/19 16:03, , 37F
Computer Science is the discipline that believes
08/19 16:03, 37F

08/19 16:03, , 38F
all problems can be solved with one more layer of
08/19 16:03, 38F

08/19 16:04, , 39F
indirection. (from Dennis DeBruler)
08/19 16:04, 39F

08/19 16:09, , 40F
書上這一段是Kent Beck寫的,我把它節錄到下面這個網址
08/19 16:09, 40F

08/19 16:09, , 41F

08/19 16:59, , 42F
我覺得可以搭配著看 Refactoring to Patterns 這本書
08/19 16:59, 42F

08/19 17:51, , 43F
THX!
08/19 17:51, 43F

08/19 21:20, , 44F
謝謝
08/19 21:20, 44F

08/19 22:37, , 45F
推這本!
08/19 22:37, 45F

08/19 22:45, , 46F
推...重構娜兩本都是很實用的書籍
08/19 22:45, 46F

08/19 23:40, , 47F
推書&L大補充說明~
08/19 23:40, 47F
文章代碼(AID): #1GBq3qfQ (Soft_Job)
文章代碼(AID): #1GBq3qfQ (Soft_Job)