看板 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
viable:好,去看看5F 08/18 22:44
chyi1004:我一個高手同事也推薦這本書 只是都沒時間看><6F 08/19 00:14
okWen:這本終於出現在這了ww7F 08/19 00:15
edward13:看書不難但現實上的重構難上加難 大多數人都不敢動原有的原可以跑的程式 大多是政治問題 不過這本是增加功力必備8F 08/19 00:21
james732:這本真的很棒10F 08/19 02:17
landlord:另一個比較特別的重點是,重構通常是加一層反腐敗層
但把用不到的反腐敗層拿掉,也是另一種重要的重構
後者感覺要比前者難得多啊..:P11F 08/19 04:36
loveme00835:xD 我是建議搭配 prefactoring 一起看啦14F 08/19 07:33
diabloevagto:樓上是神人15F 08/19 11:48
tyc5116:landlord可以說明一下嗎,不是很懂?16F 08/19 11:51
diabloevagto:adapter的意思嗎?只開放使用者會用到的部份?17F 08/19 13:08
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
diabloevagto:THX!43F 08/19 17:51
tyc5116:謝謝44F 08/19 21:20
v7q4:推這本!45F 08/19 22:37
lemonstar:推...重構娜兩本都是很實用的書籍46F 08/19 22:45
snaketsai:推書&L大補充說明~47F 08/19 23:40

--
--
(tyc5116.): [賞書] 重構-改善既有程式的設計 - Soft_Job板