想像你深陷泥淖,程式碼一團亂,想加測試卻不知道從哪裡下手;想先重構,卻又怕一動就壞,更糟的是測試和重構像雞生蛋、蛋生雞,讓人無從開始。這次鐵人賽,我要挑戰 「沒測試也敢重構?IDE 安全重構 30 日生存指南」。透過 IDE 的安全重構功能,從如何改名、抽方法、搬移類別,讓你不用測試也能放心整理程式。接著再分享進階技巧、combo 技,以及遇到工具無法處理時該怎麼降低風險。希望透過 30 天的分享,幫你在泥淖中開闢一塊淨土,重拾對程式碼的掌控感。
在開始前,先聊聊為什麼要談「重構」。在這個 vibe coding 興盛、各家 AI 神仙打架的年代,重構顯得無趣許多。但我覺得重構更貼近每個工程師的日常。的確...
大學時期自學 C 語言,那時書上都說要從記事本開始寫,底子才會扎實。後來寫出興趣了,選修資工系的課,一個演算法改了八百遍,光一個區域變數的 rename 就耗了...
在開始之前,發現有個很重要的前提沒有先講:為了能夠將重構的效果發揮到極致,這系列將會採用 C# + Rider 的組合來進行介紹。C# 作為靜態強型別語言,編譯...
好的命名不僅是可維護性的起源,也是降低 debug 時間與團隊溝通成本的魔法。但眾所周知,命名是程式設計的兩大難題之一。我們很難一次到位地賦予程式正確的名稱,這...
今天繼續延續 rename 的話題。除了程式碼的 rename 之外,檔案名稱、路徑也與之息息相關。 在 C# 中有一些慣例: 類別名稱與檔名一致 names...
龐大臃腫的方法/函式,是可理解性的阻礙。但要怎麼讓它變小?總不能把程式碼砍掉吧。PM 給的需求就是這麼複雜,要是不小心改壞了怎麼辦。啊我就怕被罵。 這大概是工作...
這個主題本來想放到最後以補充的方式講的,但在開發的過程實在太常出現,任何一個有程式潔癖的人的人一定都會受不了。 我們來看一下昨天的最後一張圖。可以看到有一些灰灰...
昨天進行到這邊,我們發現當中的 FirstOrDefault 重複了好多次,看起來好冗。 把重複的部分選取起來,可以看到重構選項有個 Introduct Var...
前幾天我們經歷了 Extract Method/Function、Extract Variable,知道怎麼從肥大的方法中拆出邏輯,當這些獨立的邏輯一個個被分離...
前面提到我們可以用 Extract 系列招式來抽取出符合單一職責的方法、變數或類別,但過做得太過頭,往往會導致簡單的邏輯被剪碎成難以理解的樣子。這時候就可以使用...