Re: [討論] 一段想重構的程式碼

看板Soft_Job作者 (「雄辯是銀,沉默是金」)時間11年前 (2013/07/26 16:09), 編輯推噓4(404)
留言8則, 5人參與, 最新討論串8/10 (看更多)
我知道總是有某些 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
所以像TonyQ大所說的,他信仰修改一定要有測試驗 是對的
07/26 18:00, 2F

07/26 18:16, , 3F
沒有噓, 接爛 code 的就很幹呀, 超難追的....
07/26 18:16, 3F

07/26 18:25, , 4F
簡單說 沒看到 CODE 甚至不清楚軟體使用狀況
07/26 18:25, 4F

07/26 18:25, , 5F
做出來的決定都是不準確的
07/26 18:25, 5F

07/27 01:10, , 6F
compiler有可能把static function變成inline直接展開
07/27 01:10, 6F

07/27 01:25, , 7F
07/27 01:25, 7F

07/29 13:44, , 8F
會有不順眼的症狀+1
07/29 13:44, 8F
※ 編輯: descent 來自: 59.125.239.51 (08/20 08:27)
文章代碼(AID): #1HyYx47R (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1HyYx47R (Soft_Job)