(圖片取自豆瓣讀書)
(原文書名為:Working Effectively with Legacy Code)
對軟體工程師來說,維護一個作品,真的是一件不容易的事。
每當案子接近結束 (通常還沒有接近結束...XD),就開始為了時程的問題,草草的交差了事。
只求能順利驗收。
當然事後的維護工作,就會來討債了。
俗話說,出來跑,總要還的。
而且,經常遇到的情況是,維護的根本不是自己的程式。
寫的人早就不知跑到哪裏去了,只好自己瞎子摸象..
為了要在原本的程式碼追加功能,或是修正奇怪的bug。
在如同黑魔法一般的程式碼流程中,往往不知如何下手。
也難怪工程師們會視這種事為屎缺 …. XD
記得程式設計之道裏面有一段話:
好農夫會忽視他種的穀子嗎?
好老師會忽略他最差的學生嗎?
好父親會容許他的孩子挨餓嗎?
好程式員會拒絕維護自己的程式嗎?
我在海賊王中也看到一幕,偉大的工程師 - 湯姆先生所說的話:
男子漢要挺起胸膛,面對自己所造的船 !!
這一個橋段真的是讓我熱血沸騰啊!
我們自己
好像有點離題 XD
------------------------------------- 回到主題分隔線 ---------------------------
這本書我是買簡體版的,台灣似乎沒有出中文版。
再怎麼樣,我看簡體還是會比看英文快啦 …. = =
這本書乍看之下會以為和重構那本重疊。
但事實上,和重構一書比起來,
這本主要是在偏向實作面。
甚至連測試工具、編譯器的特性都用上了!
主要是討論,要怎麼樣去修改現有的程式碼 (不見得是自己寫的)。
而且並非完全以物件導向技術為主。
連C語言之類的循序式語言,也在本書的討論中。
比如善用C/C++的 linker 以及前置處理器來進行 seam。
書中主要以 test 和 seam 為中心。
在修改程式碼前,必須要確認有辦法對它進行測試。
同時當然要有測試程式碼,也就是 test driven (TDD) 的方式。
第一部分(1~5章)最好是能先讀過,了解本書的術語和基本技術 (seam, 相依性、重構工具...等)
第25章的”解依賴技術”,就彙整了各式解除相依性的方法。可以先詳讀這一章。
第15章的”到處都是API調用”,則是我們常會遇到的問題。如何把一個重度相依於系統API的程式碼,切割並提取出來改良。(幾乎每行都是在call API啊 XDD)
這本書我也還在讀,我相信它對於軟體工程師來說,是值得去詳細讀完的一本工具書。
----------------------------------------------------------------------
此次的年度目標達成狀況
目標:讀書心得 (6/50)
目標的設定在2010年新的目標這篇。
張貼留言