Re: [閒聊] 遇到前輩寫的爛CODE大家都怎麼調整心態?

看板Soft_Job (軟體人)作者 (憂藍的風)時間13年前 (2012/10/28 07:07), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串3/5 (看更多)
※ 引述《uzoo (coding....coding)》之銘言: : 各位版友大家好~ : 相信大家在工作上多少都會需要維護前人遺留下來的CODE : 如果運氣好~前輩功力高強 寫的CODE 脈絡清晰 架構清晰 : 變數以及Method的命名 自我描述也很清楚 : 相信維護起來是省力不少 : 不過如果運氣不好 遇到前輩遺留下來的CODE亂糟糟 : 就像一團泥球一樣,偏偏又可以動 : 所以上級也認為不需要重構增加風險,會動就好 : 但是以後又會需要增加功能。 : 這時候大家心態上要怎麼調整呢? : PS:關於重構這件事情...小弟也是認為 會動就好 不要沒事去重構它 : 不過現在的情況是....之後會繼續增加功能阿!! 我待過幾個地方的經驗是,常常看不懂的程式比較多 待過的地方都是小公司居多,簡單的說我看過幾種最常見的狀況 variable與function隨意定義 int day1, day2, day3, month1, month2, month3, year1, year2, year3 變數總共有兩千行 沒有任何註解上萬行程式再同一個檔,function也定義的不明確 用了上百行寫的if else,其實一個用for就可以減少成十幾行 這支程式最後我是連看都不看了,想辦法直接重寫 這種情況比較常發生在非本科系的人寫的,少了一些軟工的sense 原來20000最後我用1000行寫完....我的程式透過offset計算精簡很多 至少後面都有註解計算的資料來源 多年未修改過的程式不清楚他的執行/編譯環境 MVC沒有切割 HTML的部份用了非常多層的Table 或者AJAX畫面的位置與網址對應跳躍很大 UI對應的變數為流水號且沒有固定順序 檔案命名方式使用英文流水編號,且多重include debug的時候非常困擾阿,連動關係很難釐清 這邊正常了,結果不知道哪邊也用到同樣的code就死了, 有些fuction有用有些沒用,又或著overhead 網站之間的redirect關係很複雜 公司之間的合作很常見,session timeout後就會出現沒有預期的結果 早期ASP常用的com元件 因為藏在系統裡很容易被忽略 太過精簡的作法,加上沒有註解,這個例子舉的不好 @latest=Person.find :all,:conditions=>"" 看起來不會很難理解,尋找的條件就放到"" 但對於剛進入各個語言的人,需要安裝ActiveRecord比較容易被忽略 太多的 [:id] a.b.c ? : => = 最簡化的寫法 簡化了變數的宣告反而不太容易閱讀,因為代了兩三種語言在裡面 還有一種是char[XX]這種化簡記憶體空間的buffer運用 沒有資料知道它的格式定義該如何使用與呼叫 我大多遇上重構的原因是需要對應不同的平台 現在對於這種狀態都是沒有初步看過之下,我不保證能夠做的出來 重構的評估最重要還是需求(時間與功能)、軟體規模與複雜度吧 只是碰過一些太糟糕的code,實質意義不大,因為用改的更較慢 而小幅度的修改還是以舊有模式會比較安全 心態上的調整就是...大 家都是出來混飯吃的,總要有一個最快解決的辦法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.214.203

10/28 08:57, , 1F
HTML的部份用了非常多層的Table <---- 超有感觸
10/28 08:57, 1F

10/28 15:32, , 2F
超有感觸+1 ...
10/28 15:32, 2F

10/29 13:36, , 3F
實價登錄網站就是一例 一堆table 看了真的OOXX
10/29 13:36, 3F

10/29 13:37, , 4F
最近parse它還要另外處理 搞不懂是哪家公司做的
10/29 13:37, 4F

10/29 13:42, , 5F
實價登錄網站其實只要開放連結下載excel就夠了 搞那些有
10/29 13:42, 5F

10/29 13:42, , 6F
的沒的真無聊也真浪費錢
10/29 13:42, 6F
文章代碼(AID): #1GZ6b53z (Soft_Job)
文章代碼(AID): #1GZ6b53z (Soft_Job)