Re: [心得] 花了很多時間重構卻被打槍用舊code
看到這篇原原PO在其他篇底下聲稱
「可讀性+100%」
忍不住來回一篇
軟體開發裡面有一件很重要的事情是知識轉移
又稱 knowledge transfer 印度仔會簡稱 KT
你也可以拿這個詞去搜尋 看看印度仔對這東西的看法
有一個很直白的解釋是:在你的腦袋上按複製,在我的腦袋按貼上。
簡單說
每當 A 完成了一個東西要併入主線
或者 B 要參與一個他本來不熟悉的模組
大家都需要 KT 一下
這件事情成本高到靠北
假如你手上有 3 張票
分給三個人做 用了一週做完
你以為接下來再給他們 3 張票 隔週還可以保持一樣的生產力嗎? 錯
隔週他們需要互相 KT,大家都對系統的更動有相當程度的共識之後,才能繼續進行開發
所以隔週大概做不了什麼事情
否則你的系統很快就會東倒西歪
這也是為什麼大型的專案最好有嚴格的框架跟守則
我們希望盡量減少每個人重新學習的時間
當所有人遵循相同的框架在開發 就能更容易理解別人寫的程式在做什麼
這也是模組解藕的好處之一,它可以縮小需要參與KT的人數,你不會希望每個commit都耗費20個人的學習成本
所以回到最前面那句 「可讀性+100%」
其實根本只有對重寫的那個人而言可讀性 ++
你讀了原本的程式,你寫了新的程式,新的程式你熟到不行,當然可讀性很高
對我來說這就是一份全新的程式碼
整包程式要拿來重新分析測試,才會知道裡面到底在幹麻
我要猜測你每個類別甚至每個函數的意圖
可讀性可能是 「-80%」
為什麼有些程式一開始看很屎
多看幾次之後你覺得還滿順的
因為我們的腦子就是這樣運作的啊
你瘋狂加班重寫了一整套系統
你當然覺得每個函數都一看就知道在做啥
--
要重構同時增加可讀性
唯一的方法是一次改動一部分,並且確保每個人都有跟上你的改動
否則只是把知識的鴻溝從小水溝 變成大峽谷
你這樣的改動方式
就好像我叫 AI 加個小功能
然後他給我一包 zip 說我重寫了整套專案
測試過沒問題了 你可以放心取代原本的專案
只有一種情況你這個做法會被接受:你同事跟老闆完全不管程式 把你當 vibe coding 的工具
--
我推這個觀點
推
就算是自己今天可讀性100% 難保下周同一個時間變50%
熬夜到天亮 加上 AI 幫忙寫 隔天連自己的扣都只剩 50% XD
推推
自己寫的code兩週回來看都要看老半天
推
昨天也想吐槽他推文這句 但你講的比我有脈絡多了
推
推這篇講的好
推
推
自己的code過一個月回來 就會想問問當初自己在寫啥
最可怕的是都不討論 然後最後丟出一坨大便
推
推
推,我連我自己一年前寫的程式都看不懂了說
大推
半年前寫的code我都會看git blame看是不是真的我改的
這2年已經覺得甚麼SOLID 重構 抽象 真的有意義嗎
不管誰看誰的code都覺得難懂難改
真的常常 git blame 到自己 XD
軟體工程的各種pattern都是看情況用啦 有些原則比如說DRY
,有時候當你能預估到不久後的將來,你正在做的這功能會
客製化成某個很難跟別人相處的東西,那就直接複製過來改
一改先用啊,有時候重複程式碼看似髒,其實比較好。還有
很多時候抱怨扣太屎的人,只是因為他扣看的還不夠熟,等
他上手兩個月以上再來討論要不要改
推
推樓樓上
推
推
推這篇
XDD
推
34
首Po最近案子快收尾在收斂bug 身為救援大隊長的老人我被指派到維護一個很老的API 老API的設計已經無法滿足擴充需求 新的擴充功能造成BUG 於是我花了大量時間甚至debug到天亮甚至請無薪假![[心得] 花了很多時間重構卻被打槍用舊code [心得] 花了很多時間重構卻被打槍用舊code](https://img.youtube.com/vi/HvLXaAle5jw/mqdefault.jpg)
13
分享我遇過的鬼故事 某公司裡面有A team跟B team B team負責維護的是一個堪稱屎山等級的legacy code A team覺得B team維護的程式碼真他媽臭 隔了一個module都能聞到臭味 花費了半年多 去寫了一個跟功能99%像的程式碼 然後也有unit tests13
我的建議是: 1. 要幹嘛要先講 2. 要耗用的資源多少要先講 3. 要達成的目標是啥要先講 還技術債也要看怎麼還,該決定的人去決定,10
問題是, 第一,責任: 你的責任是對整個系統負責嗎? 還是只負責修好BUG ? 從文中,我看到的是後者。哪麼,你去【重構】做什麼?1
喔 老屁股來說話了 話說把程式重構不是壞事 壞事是....重構的有對嗎? 有對應的回歸測試驗證你重構對嗎? 另外這些時間和風險,上面有人願意扛嗎?5
我隨便舉個最簡單的例子 二段式左轉跟圓環 為什麼大家都在罵, 但是要改掉也一堆人在罵? 因為大家都習慣了,雖然很智障,10
正確性,你是重構別人的code,意思是說,你有測完 【所有】的input 在【所有】的狀態下,的【所有】的output?? 當然要包括Exception。 至於可讀性+100%這種心理自high 的,真的無法講什麼,正如有人回應, 你寫的Code 放手一週後回頭看,相信你又要【重構】了。11
既然有人發文了,那我也來閒聊閒聊 程式碼阿,就不斷地推陳出新 新架構淘汰舊架構,舊架構不重構也遲早因為各種理由被砍掉 前公司很有遠瞻性 他們終於發現.Netframework 4.0 這東西不行了(大約20年)7
我來響應一下,要怎麼說服工程團隊領導重構 拿安全性壓他,資安這東西,大家都懂,但大家也都不專業 舊架構要嘛運行的環境有已知漏洞、要嘛依賴套件有已知漏洞 去 CVEdetails.com 查一下,整理一下已知漏洞高危清單 用魔法對付魔法,「不改的話有問題你要負責嗎?」
38
Re: [討論] 怎樣算是一個合格的junior cpp programme個人淺見,這點不見得是必要的,template 的 code 常常不好讀不好除錯 正確使用能寫出高彈性高效能的程式,但用過多維護跟閱讀起來會很痛苦 即便不用 template,日常大多數的事情都還是可以完成的, 如果是多人一起維護程式,有時為了提升可讀性,反而會避免太炫麗的 template 技巧 新人的話推薦不妨投資點時間,學習如何改善可讀性和與別人協作24
重構的幾個迷思覺得最近很多文章都有些不求甚解的問題,來寫點論述。 1. 重構不是什麼了不起的事情 2. 變更程式碼,重寫舊的程式碼成自己爽的樣子,不一定是重構。 3. 重構是一種相對安全的工具型開發方法論, 但仍然有不少風險跟誘惑。24
Re: [討論] 怎麼克制不想教白目同事的衝動原PO還好 只要壓制住教他的衝動就好 有沒有遇過同事一開始很熱情的請教你一些基本到不行的問題 (ex static 是什麼 什麼時候用 泛型怎樣怎樣的 還說他很想進步,只是沒時間(讓人白眼的藉口15
Re: [請益] 這種情況要怎麼重構我這篇寫的跟原原PO的狀況無關 ※ 引述《tbpfs ( )》之銘言: : 其實我真的不懂為什麼要急著重構 : 有好處嗎? : 一般而言,重構都是發生在農閒的時候
Re: [討論] 寫三元判斷式code review被打槍這邊不針對效能,也不針對說階層太多,應該用什麼方式重構之類的 只是看到有人提到巢狀的三元運算子,閱讀性太差,應該改回用if else寫 我只是好奇兩者的可讀性有差很多嗎? 以下只是舉例,不是指實務上會真的這樣寫 (1) 三元運算子:![Re: [討論] 寫三元判斷式code review被打槍 Re: [討論] 寫三元判斷式code review被打槍](https://img.youtube.com/vi/CFRhGnuXG-4/mqdefault.jpg)
7
Re: [問卦] 寫程式真的很容易寫到自己看不懂嗎?光你這句都有不同的語意解釋 1。我明知程式容易看不懂,所以寫程式時小小心心提高可讀性 重點不在用什麼方法提高;一堆人一堆書在教, 重點也不在那些方法容不容易,那這篇會淪為武力展示 一堆人告訴你他有多行,這有多簡單![Re: [問卦] 寫程式真的很容易寫到自己看不懂嗎? Re: [問卦] 寫程式真的很容易寫到自己看不懂嗎?](https://media.geeksforgeeks.org/wp-content/cdn-uploads/gfg_200x200-min.png)
2
Re: [請益] coding style差太多怎辦?重構取決於你對自己的程度有多自信 假設已經發現問題 也覺得自己有能力修改 試著跟主管溝通看看 說「在自己任務時程不耽誤的前提下 有路過看到程式碼就稍微整理一下」 若有得到主管或同事許可就下去改 沒把握自己可以改好的話 量力而為 先從小區塊開始改起2
Re: [問題] Vibe Coding + 獨立開發遊戲 有搞頭嗎?實際上做成遊戲試玩只要有prototype 就差不多知道了 prototype 就是一般遊戲demo 前身 可能美術音樂程式部分都還用替代品但可以了解玩法那種 : 但是開發的成本實在太高了。 : 2025了,AI已經能代勞最花時間的部分,![Re: [問題] Vibe Coding + 獨立開發遊戲 有搞頭嗎? Re: [問題] Vibe Coding + 獨立開發遊戲 有搞頭嗎?](https://i.imgur.com/kJMb1wXb.jpg)
1
Re: [討論] 大家目前寫程式會使用的AI工具重新排序了一下 個人用對程式語言的掌握能力來排序 指的是有無學過 有無專案開發經驗 之類的 ChatGPT Free 適合從無到有,無經驗者或無開發經驗或者專案建置經驗抓大方向
Re: [問卦] 印度這國家為何無法取代中國我本身是沒有啦 但身邊朋友,有需要在職場上和印度人打交道的 好像都不太喜歡印度人 都說什麼印度人喜歡拖時間,不算勤勞 口音很重就算了,聽得懂也不好溝通