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