🎯 什麼情境該想到我
當你看到「一個迴圈同時做了好幾件不相干的事」(一邊算總和、一邊找最小值、一邊組字串)的時候,改其中一件事總要小心翼翼繞過另一件。
⚙️ 怎麼用(步驟 / 公式)
意圖:讓每個迴圈只做一件事。這樣每段邏輯才好懂、好改,也才方便後續各自提煉成獨立函式。先別擔心效能——清晰優先,真有效能問題再另外處理。
小步安全進行:
- 複製整個迴圈一份,緊接在原迴圈之後。
- 從兩個迴圈裡各自刪掉「不屬於它」的那部分:第一個只留 A 行為,第二個只留 B 行為。
- 執行測試。
- 考慮對每個拆好的迴圈做提煉函式,讓它成為一個有名字的操作。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 拆分會多跑一次集合,理論上較慢;但多數情況差異可忽略,需要時再優化。
- 兩件事若彼此依賴(後者要用到前者的中間結果),不能單純拆開。
- 拆分本身常只是中繼步驟,真正的收穫是拆完後的提煉;別拆完就停手。
🔗 相關工具
- 提煉函式 Extract Function(拆分後把每個迴圈提煉成具名操作)
- 以管道取代迴圈 Replace Loop with Pipeline(拆乾淨後,往往能進一步改寫成集合管道)
- 重構