作者tyc5116 (累人啊....)
看板Soft_Job
標題[賞書] 重構-改善既有程式的設計
時間Sat Aug 18 15:14:56 2012
@書名:(請盡量寫正確的全名) 重構-改善既有程式的設計
@書本類型:(繁體書、簡體書、翻譯書、英文書) 翻譯書(繁體書)
@購買時間:(約略就好~) 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
→ TonyQ:這本蠻值得推薦的 08/18 17:39
→ TonyQ:裡面還有一個重點是重構跟修改是兩種不同角色,不可混為一談 08/18 17:39
推 rodion:推這本書 難度其實不高 但實用度卻是滿點 08/18 19:36
推 hl4:最近才剛從圖書館借到這本 08/18 20:35
推 viable:好,去看看 08/18 22:44
推 chyi1004:我一個高手同事也推薦這本書 只是都沒時間看>< 08/19 00:14
推 okWen:這本終於出現在這了ww 08/19 00:15
推 edward13:看書不難但現實上的重構難上加難 大多數人都不敢動原有的 08/19 00:21
→ edward13:原可以跑的程式 大多是政治問題 不過這本是增加功力必備 08/19 00:23
推 james732:這本真的很棒 08/19 02:17
→ landlord:另一個比較特別的重點是,重構通常是加一層反腐敗層 08/19 04:36
→ landlord:但把用不到的反腐敗層拿掉,也是另一種重要的重構 08/19 04:37
→ landlord:後者感覺要比前者難得多啊..:P 08/19 04:37
→ loveme00835:xD 我是建議搭配 prefactoring 一起看啦 08/19 07:33
推 diabloevagto:樓上是神人 08/19 11:48
→ tyc5116:landlord可以說明一下嗎,不是很懂? 08/19 11:51
推 diabloevagto:adapter的意思嗎?只開放使用者會用到的部份? 08/19 13:08
→ landlord:重構的重點通常有3種: 1.降低重複的程式碼; 2.解耦 08/19 14:09
→ landlord:3.增加可維護性 08/19 14:09
→ landlord:而解耦的部分,有一個通則:任何解耦都可以透過一層反腐敗 08/19 14:09
→ landlord:層,來降低兩個物件之間的耦合程度 08/19 14:10
→ landlord:IoC就是很標準的一種做法 08/19 14:10
→ landlord:但當用OO或design pattern over design時, 就會發現 08/19 14:10
→ landlord:系統中充斥著過多用不到的反腐敗層,這些為了不曾也不會 08/19 14:11
→ landlord:發生的需求,所額外的設計,只會造成維護性的降低,增加 08/19 14:11
→ landlord:架構的複雜度。 08/19 14:11
→ landlord:所以重構,另一種角度是要去檢視系統是否存在這類設計 08/19 14:12
→ landlord:雖然拔掉可能很快也很簡單,但已經為了彈性而設計的東西 08/19 14:12
→ landlord:要拔掉時,通常面對的是人性的考驗,而不是技巧了 08/19 14:12
→ landlord:這本書還有highlight出一個重點:不要看不起最簡單的重構 08/19 14:13
→ landlord:技巧,例如renaming或extra method,雖然是最小的技巧 08/19 14:13
→ landlord:卻是最實用,效用最高,風險最低的技巧 08/19 14:14
→ landlord:不過看這本書,建議還是要先看得懂class diagram 08/19 14:14
→ diabloevagto:l大推文不錯xd可以用回文的啊! 08/19 14:47
→ diabloevagto:反腐敗層 的英文是什麼啊?google好像沒這個 08/19 14:50
→ landlord:原文應該是layer of indirection,間接層 08/19 16:02
→ landlord:Computer Science is the discipline that believes 08/19 16:03
→ landlord:all problems can be solved with one more layer of 08/19 16:03
→ landlord:indirection. (from Dennis DeBruler) 08/19 16:04
→ landlord:書上這一段是Kent Beck寫的,我把它節錄到下面這個網址 08/19 16:09
推 csieflyman:我覺得可以搭配著看 Refactoring to Patterns 這本書 08/19 16:59
推 diabloevagto:THX! 08/19 17:51
→ tyc5116:謝謝 08/19 21:20
推 v7q4:推這本! 08/19 22:37
推 lemonstar:推...重構娜兩本都是很實用的書籍 08/19 22:45
推 snaketsai:推書&L大補充說明~ 08/19 23:40