Re: [討論] 一段想重構的程式碼
我知道總是有某些 code 就是看起來不順眼,
總是想要把它改好。
我也有過類似的經驗, 但是我大多屈服了,
想辦法疊床架屋的改上去, 完成某個新功能,
這樣的結果會讓後面接手的人很倒楣,
因為會愈來愈難看, 愈來愈難改。
不過我認為這也是寫程式的人需要的技能:
在爛 code 上繼續加功能, 這難度不見得簡單於寫出好程式。
有一些理由不想重構:
時間: 公司願意給時間來做這件事情。
這是最前提, 要不然我不會想這麼做。
新的未必會比較好, 怎麼知道過了 N 天之後,
新重構的架構構好呢? 可能又需要重構。
新的程式碼穩定度一定又需要一段時間來證明它真的穩定。
指出爛 code 很容易, 但要寫出自己想像中的好程式
可能就沒那麼容易了。有沒有可能高估自己的本領了?
已經厭倦這 code, 重複的改同一份 code, 總是會帶來
厭倦, 能動就好了。
沒有愛來花時間重構它, 我喜歡寫程式, 但我不一定喜歡寫
公司的程式, 我對這樣的程式碼要求, 可能只要它不出包就行,
沒愛對它重構。
實戰經驗:
很高興的把一些程式碼整理一下 (不到重構階段),
結果程式效能降低了 (這是 linux NIC driver)。
找到最後發現是一個 static function 有無 static,
ex:
static void func1() 改成 => void func1()
或是
void func1() 改成 => static void func1()
我忘記了。就只有這樣的差異。
static keyword 是不會影響產生的 machine code,
machine code 都一樣, 不知道是不是影響了位址?
有了那次經驗, 我連整理都不敢, 老實的維持現狀。
在有愛的程式碼上就不是這樣了, 看著程式慢慢變好,
還真的有股滿足感, 你一定知道我說的那種感覺。
※ 引述《tyc5116 (累人啊....)》之銘言:
: 如題,因為不知道適合PO在哪個板問,看來看去好像這裡比較適合的樣子
: 如果不妥我再轉板
: 我在接手別人的程式後,發現他架構有需要重構的地方
: 程式分了數個小模組(a和b都是一個模組)
: class a{
: void func();
: ...
: };
: class b{
: void func();
: ...
: ;
: ...
: 其中每個模組的func程式碼都是一樣的
: 所以我想說就再拉出一個介面,並實作這個func,a和b都繼承這個介面
: 這樣這段重覆的程式碼就可以省掉了
--
要有一流的運氣, 才能邂逅一流的美女。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.125.239.51
推
07/26 17:59, , 1F
07/26 17:59, 1F
→
07/26 18:00, , 2F
07/26 18:00, 2F
推
07/26 18:16, , 3F
07/26 18:16, 3F
推
07/26 18:25, , 4F
07/26 18:25, 4F
→
07/26 18:25, , 5F
07/26 18:25, 5F
→
07/27 01:10, , 6F
07/27 01:10, 6F
→
07/27 01:25, , 7F
07/27 01:25, 7F
推
07/29 13:44, , 8F
07/29 13:44, 8F
※ 編輯: descent 來自: 59.125.239.51 (08/20 08:27)
討論串 (同標題文章)