作者 michellehot (姆咪熱)
標題 Re: [討論] 寫程式的追求?
時間 Mon Mar 31 03:14:57 2025


專案要不要重構,因專案規模、時機、文化而異。
以下是根據我個人開發經驗的觀點:

我認為重構需要考量三個要點:動機、時機、理由。

1. 動機:為什麼需要重構
代碼畢竟是工具,不是文學,能帶來效益最重要。
要構成需求的強力條件是,安全性和耦合性。
當有具體新增功能需求的時候,修改原代碼容易導致錯誤風險提高。
當功能需要刪減的時候,原代碼無法快速拆分,且預期有多處時。
需要多方協作,而原代碼無法有效拆解,嚴重影響協同開放時。
代碼過於複雜導致難以維護。
代碼規模已經導致效能低落。
這些原因都是直接導致產品需求無法實現。

2. 時機:什麼時候該做
不為太遠的未來,而為不久的將來。
重構是為了可預見的功能拓展而做,不是為了不存在的以後而做。
當有功能拓展的可能性的時候,要規劃重構,避免技術債累積。
當產品需求和定位還不確定的時候,以最有效率開發的方式做。
舉例來說,開放解一元二次方程式的功能好了,

如果只是算法的一個步驟,直接一個函式搞定。
如果專案是要製作一個數學工具,那可重構可解N次的工具。
但如果動機是前者,卻去重構成後者,就不是對的時機。

3. 理由:巧立名目
重構的特點是不改變原本功能,所以通常不具功勞。
所以要配合具體產品需求再做。例如:
需要增刪改功能,需要重構不然做不到。
產品要做效能提升,需要重構不然會卡死。
專案需要開啟合作,需要重構不然無法協作。
專案需要交接給營運,需要重構不然難以維護。
不過通常交接了誰跟你重構,吃力不討好。


說白了,重構本質上是利他行為,願意做的都是好人。
好處不在增加功勞,而是提升管理效率這種隱藏成本,
也沒有一定要重構,而是取決於動機和時機,

取得一個有用和好維護的平衡。

至於要不要因為好讀或好看而重構,我覺得不值得。
代碼的原則歸原則、模式歸模式,滿足很好,只要不影響開發效率。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.232.100.61 (臺灣)
※ 作者: michellehot 2025-03-31 03:14:57
※ 文章代碼(AID): #1dwPWptV (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1743362099.A.DDF.html
※ 同主題文章:
03-30 12:09 gibaman5566
Re: [討論] 寫程式的追求?
03-31 03:14 michellehot
04-05 19:20 SkankHunt42
marra: 不改沒事,一改出事,才是真的麻煩!1F 03/31 03:21
zyxx: 推 講得清楚2F 03/31 09:13
fatb: 有經驗的都知道改了超容易出事 一般底層別亂搞這種事情
高層改出錯可以主導整個重構事件找出問題 低層改出錯高層只會覺得案子這麼趕了你還在給我找麻煩3F 03/31 11:09
philip80220: 推6F 03/31 12:40
PeanutZombie: 推7F 03/31 16:22
viper9709: 覺得解N次方程式的例子不錯8F 04/01 00:26
michellehot: 確實 不論是改上層還是底層 只要不是同一個人寫的
就很容易出錯 不過我想這可以是另一個主題了XD9F 04/01 00:42
aspirev3: 先把舊code增加測試如何11F 04/01 13:19
labbat: 樓上說得好,那麼誰來提供測資例子12F 04/01 20:56

--
作者 michellehot 的最新發文:
  • +5 Re: [討論] 寫程式的追求? - Soft_Job 板
    作者: 118.232.100.61 (台灣) 2025-03-31 03:14:57
    12F 5推
  • +11 Re: [問卦] Subway今天買一送一 但平常都誰在吃的卦?? - Gossiping 板
    作者: 59.124.222.250 (台灣) 2019-11-01 13:04:22
    我每個禮拜平均吃五天Subway 有資格回了吧 平心而論 Subway除了健康而且選擇蠻多的 全部都是清淡不油膩類型 你說麥當勞肯德基那種要挑健康組合根本沒幾組 然後是環境 速食店的整潔+明亮 食物透 …
    32F 13推 2噓
  • +25 Re: [新聞] 申請入大學 「備審資料」令考生壓力大 - Gossiping 板
    作者: 111.71.47.24 (台灣) 2019-05-25 20:54:45
    別鬧了 備審資料這種東西只是把你高中時期的經歷整理一下而已 跟面試履歷一樣的東西,但不用到那麼正式 畢竟是學生,怎麼說也是第一次 蛤?你跟我說沒錢參加營隊所以沒上? 參加營隊這種十年前就知道對推甄沒用 …
    45F 29推 4噓
  • +7 [正妹] 德國超模Toni Darrn - Beauty 板
    作者: 131.188.23.2 (德國) 2017-06-24 05:03:14
    報紙封面看到的 Toni Darrn 出生:07.Jul.1992 職業:德國名模 代言:Calvin Klein, Hugo Boss, Victoria's secret 雜誌:Vogu …
    10F 7推
  • +43 Re: [問卦] "我們的"法官可不可以用AI代替? - Gossiping 板
    作者: 131.188.23.2 (德國) 2017-05-18 07:51:30
    光量化就是一個問題 犯罪動機 -心懷怨恨,報復社會殺人 -憐惜親人,使其脫離病痛 -精神狀況,無法自我控制 -行俠正義,傷害欲加害者 你可以直接用事件來衡量嗎 犯罪嚴重程度 -洩漏情報,造成國家危機 …
    290F 68推 25噓
點此顯示更多發文記錄