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