Re: [閒聊] 遇到前輩寫的爛CODE大家都怎麼調整心態?
※ 引述《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
10/28 08:57, 1F
推
10/28 15:32, , 2F
10/28 15:32, 2F
推
10/29 13:36, , 3F
10/29 13:36, 3F
→
10/29 13:37, , 4F
10/29 13:37, 4F
→
10/29 13:42, , 5F
10/29 13:42, 5F
→
10/29 13:42, , 6F
10/29 13:42, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 5 篇):
Soft_Job 近期熱門文章
PTT職涯區 即時熱門文章