最新文章

[讀書心得] 要愛你的作品! - 修改代碼的藝術

2010.05.18 (二)



(圖片取自豆瓣讀書)
s2690732 
(原文書名為:Working Effectively with Legacy Code)



對軟體工程師來說,維護一個作品,真的是一件不容易的事。
每當案子接近結束 (通常還沒有接近結束...XD),就開始為了時程的問題,草草的交差了事。
只求能順利驗收。

當然事後的維護工作,就會來討債了。
俗話說,出來跑,總要還的。


而且,經常遇到的情況是,維護的根本不是自己的程式。
寫的人早就不知跑到哪裏去了,只好自己瞎子摸象..

為了要在原本的程式碼追加功能,或是修正奇怪的bug。
在如同黑魔法一般的程式碼流程中,往往不知如何下手。

也難怪工程師們會視這種事為屎缺 …. XD


記得程式設計之道裏面有一段話:

好農夫會忽視他種的穀子嗎?
好老師會忽略他最差的學生嗎?
好父親會容許他的孩子挨餓嗎?
好程式員會拒絕維護自己的程式嗎?


我在海賊王中也看到一幕,偉大的工程師 - 湯姆先生所說的話:


image

男子漢要挺起胸膛,面對自己所造的船 !!

這一個橋段真的是讓我熱血沸騰啊!

我們自己捅出來的簍子當然要靠自己來收尾呀!


好像有點離題 XD

------------------------------------- 回到主題分隔線 ---------------------------



這本書我是買簡體版的,台灣似乎沒有出中文版。
再怎麼樣,我看簡體還是會比看英文快啦 …. = =



這本書乍看之下會以為和重構那本重疊。

但事實上,和重構一書比起來,
這本主要是在偏向實作面。
甚至連測試工具、編譯器的特性都用上了!

主要是討論,要怎麼樣去修改現有的程式碼 (不見得是自己寫的)。
而且並非完全以物件導向技術為主。

連C語言之類的循序式語言,也在本書的討論中。
比如善用C/C++的 linker 以及前置處理器來進行 seam。




書中主要以 test 和 seam 為中心。
在修改程式碼前,必須要確認有辦法對它進行測試。
同時當然要有測試程式碼,也就是 test driven (TDD) 的方式。

第一部分(1~5章)最好是能先讀過,了解本書的術語和基本技術 (seam, 相依性、重構工具...等)

第25章的”解依賴技術”,就彙整了各式解除相依性的方法。可以先詳讀這一章。
第15章的”到處都是API調用”,則是我們常會遇到的問題。如何把一個重度相依於系統API的程式碼,切割並提取出來改良。(幾乎每行都是在call API啊 XDD)            

這本書我也還在讀,我相信它對於軟體工程師來說,是值得去詳細讀完的一本工具書。


---------------------------------------------------------------------- 
此次的年度目標達成狀況 

目標:讀書心得 (6/50)   

目標的設定在2010年新的目標這篇。

Share this:

張貼留言

 
Copyright © 大鐵與小鐵的煉鋼廠. Designed by OddThemes