iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

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

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

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

Day 11. Change Signature:改寫方法的契約

在重構的過程中,方法/函式簽章(signature)往往不是一開始就能設計完美。隨著需求演進,你可能會發現某些參數不再需要、某些回傳型別過於狹隘,甚至方法名稱本...

2025-09-25 ‧ 由 Finn 寶 分享
DAY 12

Day 12. Change Signature 之 2:讓參數垂直移動

昨天提到 Change Signature 可以調整參數的順序,我們可以把這種重構視為參數的「水平移動」。若我們想要把某些參數的處理移出或移入方法/函式內,也就...

2025-09-26 ‧ 由 Finn 寶 分享
DAY 13

Day 13. Change Signature 之 3:老闆幫我把這邊的參數打包一下

昨天講完參數的垂直移動,有時候我們還會想要將參數整理成 Value Object 或是 Parameter Object,讓方法/函式的簽章簡潔一點,來看看我們...

2025-09-27 ‧ 由 Finn 寶 分享
DAY 13

Day 14. if 的世界線:如果我能讓它變簡單......

前幾天都在講抽方法、抽參數的東西,今天開始要進到流程控制的部分了,重構最危險的地方也是在這裡。想想過去有多少次在改 if 的時候,因為少加一個驚嘆號 !,而導致...

2025-09-29 ‧ 由 Finn 寶 分享
DAY 13

Day 15. if 的世界線之 2:不同世界線的收束與發散

昨天已經看到了 if 的各種型態轉換。有時候我們真的需要伸手去整理這些條件,Rider 也提供很多便捷的小技巧,可以最大幅度地減少我們手動修改條件判斷的機會。...

2025-09-30 ‧ 由 Finn 寶 分享
DAY 13

Day 16. if 的世界線之 3:斬斷冗余的枷鎖

前兩天關於 if 的重構,雖然提升了可理解性,但本質上並沒有減少複雜度。要減少複雜度,我們必須刪去一些條件式。可能嗎?既要不改變既有行為,又要刪除條件式,會不會...

2025-10-01 ‧ 由 Finn 寶 分享
DAY 13

Day 17. if 的世界線之 4:富有既視感的條件式

昨天提到消除冗余條件的原理,實際應用時會有一點變化,今天就來看看吧。 1. 已經回傳的重複條件式 在這個例子中,order == null 已經在第一個 if...

2025-10-04 ‧ 由 Finn 寶 分享