iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

沒測試也敢重構?IDE 安全重構 30 日生存指南 系列

想像你深陷泥淖,程式碼一團亂,想加測試卻不知道從哪裡下手;想先重構,卻又怕一動就壞,更糟的是測試和重構像雞生蛋、蛋生雞,讓人無從開始。這次鐵人賽,我要挑戰 「沒測試也敢重構?IDE 安全重構 30 日生存指南」。透過 IDE 的安全重構功能,從如何改名、抽方法、搬移類別,讓你不用測試也能放心整理程式。接著再分享進階技巧、combo 技,以及遇到工具無法處理時該怎麼降低風險。希望透過 30 天的分享,幫你在泥淖中開闢一塊淨土,重拾對程式碼的掌控感。

參賽天數 13 天 | 共 17 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 1. 起心動念

在開始前,先聊聊為什麼要談「重構」。在這個 vibe coding 興盛、各家 AI 神仙打架的年代,重構顯得無趣許多。但我覺得重構更貼近每個工程師的日常。的確...

2025-09-15 ‧ 由 Finn 寶 分享
DAY 2

Day 2. IDE 的黑魔法:AST、符號分析與索引

大學時期自學 C 語言,那時書上都說要從記事本開始寫,底子才會扎實。後來寫出興趣了,選修資工系的課,一個演算法改了八百遍,光一個區域變數的 rename 就耗了...

2025-09-16 ‧ 由 Finn 寶 分享
DAY 3

Day 3. 上上下下左右左右 BA:打 combo 技前先設 keymap

在開始之前,發現有個很重要的前提沒有先講:為了能夠將重構的效果發揮到極致,這系列將會採用 C# + Rider 的組合來進行介紹。C# 作為靜態強型別語言,編譯...

2025-09-17 ‧ 由 Finn 寶 分享
DAY 4

Day 4. Rename:呼喚吾正確的名

好的命名不僅是可維護性的起源,也是降低 debug 時間與團隊溝通成本的魔法。但眾所周知,命名是程式設計的兩大難題之一。我們很難一次到位地賦予程式正確的名稱,這...

2025-09-18 ‧ 由 Finn 寶 分享
DAY 5

Day 5. Rename 之 2:不止其名,亦正其位

今天繼續延續 rename 的話題。除了程式碼的 rename 之外,檔案名稱、路徑也與之息息相關。 在 C# 中有一些慣例: 類別名稱與檔名一致 names...

2025-09-19 ‧ 由 Finn 寶 分享
DAY 6

Day 6. Extract Method:抽取程式碼的靈魂

龐大臃腫的方法/函式,是可理解性的阻礙。但要怎麼讓它變小?總不能把程式碼砍掉吧。PM 給的需求就是這麼複雜,要是不小心改壞了怎麼辦。啊我就怕被罵。 這大概是工作...

2025-09-20 ‧ 由 Finn 寶 分享
DAY 7

Day 7. Show Context Action:來自 IDE 的神諭

這個主題本來想放到最後以補充的方式講的,但在開發的過程實在太常出現,任何一個有程式潔癖的人的人一定都會受不了。 我們來看一下昨天的最後一張圖。可以看到有一些灰灰...

2025-09-21 ‧ 由 Finn 寶 分享
DAY 8

Day 8. Extract Variable:為那語句找到名字

昨天進行到這邊,我們發現當中的 FirstOrDefault 重複了好多次,看起來好冗。 把重複的部分選取起來,可以看到重構選項有個 Introduct Var...

2025-09-22 ‧ 由 Finn 寶 分享
DAY 9

Day 9. Extract Class:分裂出專屬的職責

前幾天我們經歷了 Extract Method/Function、Extract Variable,知道怎麼從肥大的方法中拆出邏輯,當這些獨立的邏輯一個個被分離...

2025-09-23 ‧ 由 Finn 寶 分享
DAY 10

Day 10. Inline Method/Variable:收集破碎的邏輯

前面提到我們可以用 Extract 系列招式來抽取出符合單一職責的方法、變數或類別,但過做得太過頭,往往會導致簡單的邏輯被剪碎成難以理解的樣子。這時候就可以使用...

2025-09-24 ‧ 由 Finn 寶 分享