PTT評價

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

看板Soft_Job標題Re: [心得] 花了很多時間重構卻被打槍用舊code作者
brucetu
(sec)
時間推噓25 推:25 噓:0 →:10

看到這篇原原PO在其他篇底下聲稱
「可讀性+100%」
忍不住來回一篇

軟體開發裡面有一件很重要的事情是知識轉移

又稱 knowledge transfer 印度仔會簡稱 KT

你也可以拿這個詞去搜尋 看看印度仔對這東西的看法

有一個很直白的解釋是:在你的腦袋上按複製,在我的腦袋按貼上。

簡單說

每當 A 完成了一個東西要併入主線

或者 B 要參與一個他本來不熟悉的模組

大家都需要 KT 一下

這件事情成本高到靠北

假如你手上有 3 張票

分給三個人做 用了一週做完

你以為接下來再給他們 3 張票 隔週還可以保持一樣的生產力嗎? 錯

隔週他們需要互相 KT,大家都對系統的更動有相當程度的共識之後,才能繼續進行開發

所以隔週大概做不了什麼事情

否則你的系統很快就會東倒西歪

這也是為什麼大型的專案最好有嚴格的框架跟守則

我們希望盡量減少每個人重新學習的時間

當所有人遵循相同的框架在開發 就能更容易理解別人寫的程式在做什麼

這也是模組解藕的好處之一,它可以縮小需要參與KT的人數,你不會希望每個commit都耗費20個人的學習成本

所以回到最前面那句 「可讀性+100%」

其實根本只有對重寫的那個人而言可讀性 ++

你讀了原本的程式,你寫了新的程式,新的程式你熟到不行,當然可讀性很高

對我來說這就是一份全新的程式碼

整包程式要拿來重新分析測試,才會知道裡面到底在幹麻

我要猜測你每個類別甚至每個函數的意圖

可讀性可能是 「-80%」

為什麼有些程式一開始看很屎

多看幾次之後你覺得還滿順的

因為我們的腦子就是這樣運作的啊

你瘋狂加班重寫了一整套系統

你當然覺得每個函數都一看就知道在做啥

--

要重構同時增加可讀性

唯一的方法是一次改動一部分,並且確保每個人都有跟上你的改動

否則只是把知識的鴻溝從小水溝 變成大峽谷

你這樣的改動方式

就好像我叫 AI 加個小功能

然後他給我一包 zip 說我重寫了整套專案

測試過沒問題了 你可以放心取代原本的專案

只有一種情況你這個做法會被接受:你同事跟老闆完全不管程式 把你當 vibe coding 的工具

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.128.194 (臺灣)
PTT 網址

FrozenMoment09/15 12:43我推這個觀點

zyxx09/15 12:53

ILoveAMD09/15 12:55就算是自己今天可讀性100% 難保下周同一個時間變50%

brucetu09/15 13:31熬夜到天亮 加上 AI 幫忙寫 隔天連自己的扣都只剩 50% XD

marra09/15 13:37推推

crowley09/15 13:38自己寫的code兩週回來看都要看老半天

jackwang0109/15 13:48

chuegou09/15 14:10昨天也想吐槽他推文這句 但你講的比我有脈絡多了

HelloPPT09/15 14:26

viper970909/15 16:07推這篇講的好

alihue09/15 16:23

lytt09/15 17:00

a548027709/15 17:49自己的code過一個月回來 就會想問問當初自己在寫啥

Obama1909/15 17:51最可怕的是都不討論 然後最後丟出一坨大便

single456509/15 18:52

newhandfun09/15 19:31

leokidd197609/15 20:47推,我連我自己一年前寫的程式都看不懂了說

hsiantinc09/15 21:06大推

abc092200109/15 22:28半年前寫的code我都會看git blame看是不是真的我改的

k7ji91ab5m09/15 22:31這2年已經覺得甚麼SOLID 重構 抽象 真的有意義嗎

k7ji91ab5m09/15 22:31不管誰看誰的code都覺得難懂難改

brucetu09/15 23:10真的常常 git blame 到自己 XD

brucetu09/15 23:16軟體工程的各種pattern都是看情況用啦 有些原則比如說DRY

brucetu09/15 23:16,有時候當你能預估到不久後的將來,你正在做的這功能會

brucetu09/15 23:16客製化成某個很難跟別人相處的東西,那就直接複製過來改

brucetu09/15 23:16一改先用啊,有時候重複程式碼看似髒,其實比較好。還有

brucetu09/15 23:17很多時候抱怨扣太屎的人,只是因為他扣看的還不夠熟,等

brucetu09/15 23:17他上手兩個月以上再來討論要不要改

knme09/15 23:50

viper970909/16 01:08推樓樓上

GoGoRoTM09/16 09:38

wangyc09/16 09:40

freezeio09/16 11:38推這篇

Eide09/16 21:40XDD

ELivan09/18 00:35