Re: [心得] 花了很多時間重構卻被打槍用舊code
看到這篇原原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 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1757909562.A.E51.html
推
09/15 12:43,
2周前
, 1F
09/15 12:43, 1F
推
09/15 12:53,
2周前
, 2F
09/15 12:53, 2F
推
09/15 12:55,
2周前
, 3F
09/15 12:55, 3F
→
09/15 13:31,
2周前
, 4F
09/15 13:31, 4F
→
09/15 13:37,
2周前
, 5F
09/15 13:37, 5F
推
09/15 13:38,
2周前
, 6F
09/15 13:38, 6F
推
09/15 13:48,
2周前
, 7F
09/15 13:48, 7F
推
09/15 14:10,
2周前
, 8F
09/15 14:10, 8F
推
09/15 14:26,
2周前
, 9F
09/15 14:26, 9F
推
09/15 16:07,
2周前
, 10F
09/15 16:07, 10F
推
09/15 16:23,
2周前
, 11F
09/15 16:23, 11F
推
09/15 17:00,
2周前
, 12F
09/15 17:00, 12F
推
09/15 17:49,
2周前
, 13F
09/15 17:49, 13F
推
09/15 17:51,
2周前
, 14F
09/15 17:51, 14F
推
09/15 18:52,
2周前
, 15F
09/15 18:52, 15F
推
09/15 19:31,
2周前
, 16F
09/15 19:31, 16F
推
09/15 20:47,
2周前
, 17F
09/15 20:47, 17F
推
09/15 21:06,
2周前
, 18F
09/15 21:06, 18F
推
09/15 22:28,
2周前
, 19F
09/15 22:28, 19F
推
09/15 22:31,
2周前
, 20F
09/15 22:31, 20F
→
09/15 22:31,
2周前
, 21F
09/15 22:31, 21F
→
09/15 23:10,
2周前
, 22F
09/15 23:10, 22F
→
09/15 23:16,
2周前
, 23F
09/15 23:16, 23F
→
09/15 23:16,
2周前
, 24F
09/15 23:16, 24F
→
09/15 23:16,
2周前
, 25F
09/15 23:16, 25F
→
09/15 23:16,
2周前
, 26F
09/15 23:16, 26F
→
09/15 23:17,
2周前
, 27F
09/15 23:17, 27F
→
09/15 23:17,
2周前
, 28F
09/15 23:17, 28F
推
09/15 23:50,
2周前
, 29F
09/15 23:50, 29F
推
09/16 01:08,
2周前
, 30F
09/16 01:08, 30F
推
09/16 09:38,
2周前
, 31F
09/16 09:38, 31F
推
09/16 09:40,
2周前
, 32F
09/16 09:40, 32F
推
09/16 11:38,
2周前
, 33F
09/16 11:38, 33F
推
09/16 21:40,
2周前
, 34F
09/16 21:40, 34F
推
09/18 00:35,
2周前
, 35F
09/18 00:35, 35F
推
09/18 18:40,
2周前
, 36F
09/18 18:40, 36F
→
09/19 13:28,
2周前
, 37F
09/19 13:28, 37F
推
09/20 23:56,
2周前
, 38F
09/20 23:56, 38F
推
09/21 14:20,
2周前
, 39F
09/21 14:20, 39F
推
09/23 08:19,
1周前
, 40F
09/23 08:19, 40F
→
09/23 08:19,
1周前
, 41F
09/23 08:19, 41F
推
09/23 16:59,
1周前
, 42F
09/23 16:59, 42F
推
09/24 22:03,
1周前
, 43F
09/24 22:03, 43F
→
09/24 22:03,
1周前
, 44F
09/24 22:03, 44F
討論串 (同標題文章)
完整討論串 (本文為第 5 之 12 篇):
Soft_Job 近期熱門文章
22
45
PTT職涯區 即時熱門文章