🎯 什麼情境該想到我
當你遇到「一長串複雜的 if 判斷條件」或「then/else 分支裡塞了一大坨程式碼」,得逐字讀完才知道它在判斷什麼、做什麼的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:複雜的條件邏輯是製造難懂程式碼的元兇之一。把「判斷條件」和「各分支的動作」分別提煉成有意義名字的函式,讓程式碼變成一段自我說明的敘述——你一眼看到函式名就懂它在做什麼,不必再讀細節。
小步安全進行:
- 對「條件判斷式」施以提煉函式,取一個能說明「這在判斷什麼」的名字(如
isSummer())。 - 對「then 分支」施以提煉函式,取一個說明「這在做什麼」的名字(如
summerCharge())。 - 對「else 分支」同樣提煉成具名函式。
- 每提煉一段就執行一次測試。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 條件與分支若本來就短小易懂,硬提煉反而多繞一層,得不償失。
- 這是「讓意圖浮現」的手法,重點是取好名字;若名字取不出意義,代表你還沒真的理解它。
🔗 相關工具
- 提煉函式 Extract Function(本手法就是把提煉函式套用在條件與各分支上)
- 以衛述句取代嵌套條件式 Replace Nested Conditional with Guard Clauses(另一種整理條件結構的手法,處理巢狀)
- 合併條件式 Consolidate Conditional Expression(處理多個導向相同結果的條件)
- 重構