一支歷史悠久的報表,若干年後人事已非但是主管交代你改寫,報表跑一次要四小時且中間就有可能會死掉,能幫你的只有原始碼,你(妳)要怎麼辦呢!?以下是我的血淚記錄。
前陣子主管忽然跟我說有支年度報表的程式需要作些修改,因為跑出來大概要三四個小時,且有可能在中間就死掉了,
所以困擾那個部門很久了,希望我們可以看看問題出在哪裡,所以這檔事就變成我那陣子的夢靨....(泣)。
第一眼看到原始碼,我就再想他怎會這樣子寫呢,但是又害怕其中有冤情,所以就進入了以下的輪迴。
-
絕望
因為根本不知道從何下手,也因為年代久遠人事已非沒有人可以詢問,也沒有人敢確定那些邏輯是否還是正確,
且註解也寫的很玄啊,所以一整個茫然啊(空)!。
-
從好懂的先整理
只好從一些比較簡單的Method先去看懂其中的意義,改一下命名方式,或是一些你確定不會影響報表
產出的元素,改的時候還是很抖啊...!
-
再次絕望
改完上述敢改的之後,我也不知道還能在做什麼了,所以又停滯了一陣子,做些其他專案來讓自己不要這麼空虛,
天啊,這玩意兒好難懂啊,我冏了。
-
開始有希望
或許是因為太久沒改怕對不起主管以及那些User,不知道哪裡來的勇氣以及希望,所以我開始大幅度設計那邊要更動,
也不再害怕哪邊可能會大掛點,因為至少先有個樣子再說嘛(先求有再求好嘛)。
-
快速結案
大量修改原始碼,因為已經到這地步了,不趕快把它了結也不行啦,常言道:頭都剪了,不洗不行了(= =a)。
-
大量Bug蜂湧而至
媽啊,怎麼這麼多蟲蟲啊,雖然前面已經有心理準備,但是常常改一個再跑三個出來,認命啦,修改吧!胖皮,
改完囉,現階段好像都ok囉,也好一陣子沒有什麼User Call囉,看來是真的結案囉(大誤)!
-
覺悟(另一說絕望)
又過了一陣子,又有問題跑出來了,且我發現原始碼內真的是有隱情啊,才了解人家當初為什麼這樣寫嘛....,
所以又修改之後,我希望不要又過一陣子後又要再重演了(雖然我知道這一定會的!),也希望若干年後有人重寫我這段的話
他也可以了解我現在的痛,哈哈。
我想以後如果還有機會改寫前輩的Code,我想我會更有經驗的。^^
這是我觀看 The 7 stages of refactoring 後的血淚記錄。