Re: [心得] 花了很多時間重構卻被打槍用舊code

作者: brucetu (sec)   2025-09-15 12:12:40
看到這篇原原PO在其他篇底下聲稱
「可讀性+100%」
忍不住來回一篇
軟體開發裡面有一件很重要的事情是知識轉移
又稱 knowledge transfer 印度仔會簡稱 KT
你也可以拿這個詞去搜尋 看看印度仔對這東西的看法
有一個很直白的解釋是:在你的腦袋上按複製,在我的腦袋按貼上。
簡單說
每當 A 完成了一個東西要併入主線
或者 B 要參與一個他本來不熟悉的模組
大家都需要 KT 一下
這件事情成本高到靠北
假如你手上有 3 張票
分給三個人做 用了一週做完
你以為接下來再給他們 3 張票 隔週還可以保持一樣的生產力嗎? 錯
隔週他們需要互相 KT,大家都對系統的更動有相當程度的共識之後,才能繼續進行開發
所以隔週大概做不了什麼事情
否則你的系統很快就會東倒西歪
這也是為什麼大型的專案最好有嚴格的框架跟守則
我們希望盡量減少每個人重新學習的時間
當所有人遵循相同的框架在開發 就能更容易理解別人寫的程式在做什麼
這也是模組解藕的好處之一,它可以縮小需要參與KT的人數,你不會希望每個commit都耗
費20個人的學習成本
所以回到最前面那句 「可讀性+100%」
其實根本只有對重寫的那個人而言可讀性 ++
你讀了原本的程式,你寫了新的程式,新的程式你熟到不行,當然可讀性很高
對我來說這就是一份全新的程式碼
整包程式要拿來重新分析測試,才會知道裡面到底在幹麻
我要猜測你每個類別甚至每個函數的意圖
可讀性可能是 「-80%」
為什麼有些程式一開始看很屎
多看幾次之後你覺得還滿順的
因為我們的腦子就是這樣運作的啊
你瘋狂加班重寫了一整套系統
你當然覺得每個函數都一看就知道在做啥
作者: FrozenMoment   2025-09-15 12:43:00
我推這個觀點
作者: zyxx (321)   2025-09-15 12:53:00
作者: ILoveAMD (AMD)   2025-09-15 12:55:00
就算是自己今天可讀性100% 難保下周同一個時間變50%
作者: brucetu (sec)   2025-09-15 13:31:00
熬夜到天亮 加上 AI 幫忙寫 隔天連自己的扣都只剩 50% XD
作者: marra (Marra)   2025-09-15 13:37:00
推推
作者: crowley (蒼蠅拍)   2025-09-15 13:38:00
自己寫的code兩週回來看都要看老半天
作者: jackwang01 (艾斯比那)   2025-09-15 13:48:00
作者: chuegou (chuegou)   2025-09-15 14:10:00
昨天也想吐槽他推文這句 但你講的比我有脈絡多了
作者: HelloPPT (PTTHello)   2025-09-15 14:26:00
作者: viper9709 (阿達)   2025-09-15 16:07:00
推這篇講的好
作者: alihue (wanda wanda)   2025-09-15 16:23:00
作者: lytt   2025-09-15 17:00:00
作者: a5480277 (tk)   2025-09-15 17:49:00
自己的code過一個月回來 就會想問問當初自己在寫啥
作者: Obama19 (^_^)   2025-09-15 17:51:00
最可怕的是都不討論 然後最後丟出一坨大便
作者: single4565 (leekdumpling韭菜水餃)   2025-09-15 18:52:00
作者: newhandfun (新手方)   2025-09-15 19:31:00
作者: leokidd1976 (allen)   2025-09-15 20:47:00
推,我連我自己一年前寫的程式都看不懂了說
作者: hsiantinc (天這麼冷)   2025-09-15 21:06:00
大推
作者: abc0922001 (中士abc)   2025-09-15 22:28:00
半年前寫的code我都會看git blame看是不是真的我改的
作者: k7ji91ab5m (囧嘻嘻)   2025-09-15 22:31:00
這2年已經覺得甚麼SOLID 重構 抽象 真的有意義嗎不管誰看誰的code都覺得難懂難改
作者: brucetu (sec)   2025-09-15 23:10:00
真的常常 git blame 到自己 XD軟體工程的各種pattern都是看情況用啦 有些原則比如說DRY,有時候當你能預估到不久後的將來,你正在做的這功能會客製化成某個很難跟別人相處的東西,那就直接複製過來改一改先用啊,有時候重複程式碼看似髒,其實比較好。還有很多時候抱怨扣太屎的人,只是因為他扣看的還不夠熟,等他上手兩個月以上再來討論要不要改
作者: knme (knem)   2025-09-15 23:50:00
作者: viper9709 (阿達)   2025-09-16 01:08:00
推樓樓上
作者: GoGoRoTM (GoGoRo TM)   2025-09-16 09:38:00
作者: wangyc (╳乂ㄨメX乄χ×x)   2025-09-16 09:40:00
作者: freezeio   2025-09-16 11:38:00
推這篇
作者: Eide (艾德)   2025-09-16 21:40:00
XDD
作者: ELivan (ELivan)   2025-09-18 00:35:00
作者: tim96tim (小踢)   2025-09-18 18:40:00
謝分享
作者: Nicks (Nick)   2025-09-19 13:28:00
推 這觀點才合理
作者: FatFatPig (胖胖の豬)   2025-09-20 23:56:00
作者: f0915034335 (技能)   2025-09-21 14:20:00
作者: wawawa (...)   2025-09-23 08:19:00
不要特別拉出一個時段或任務說要做重構,合格的工程師應該要讓重構隨時發生,小範圍小範圍的處理
作者: viper9709 (阿達)   2025-09-23 16:59:00
推樓上
作者: EricTao   2025-09-24 22:03:00
確實 之前問隔壁部門一個問題 那個人看了一眼code說 這段那個誰重寫過了要問他。

Links booklink

Contact Us: admin [ a t ] ucptt.com