🎯 什麼情境該想到我
當你「盯著一個迴圈,卻得逐行追蹤才能看出它到底在篩選、轉換還是彙總」的時候——尤其這些動作全擠在同一個迴圈裡。
⚙️ 怎麼用(步驟 / 公式)
這味道是什麼徵兆:傳統迴圈把「做什麼」藏在控制流程細節裡。集合管道(collection pipeline,如 map / filter / reduce)能讓每一步的意圖直接寫在臉上:這一段是過濾、那一段是轉換,一眼就懂。
通常用哪些重構手法對治:
- 以管道取代迴圈(Replace Loop with Pipeline):把迴圈拆解成一連串具名的管道操作,讓資料的流動與每步意圖清晰可讀。
作者坦言,隨著語言支援一級函式,迴圈本身已逐漸成為一種味道。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 管道並非萬靈丹;極長或需要提前中斷、複雜狀態累積的邏輯,硬套管道可能更難懂。
- 團隊對管道風格的熟悉度、以及效能敏感場景,都要一併考量。
🔗 相關工具
- 重複程式碼 Duplicated Code(相似迴圈可用管道統一表達)
- 過長函式 Long Function(管道化常讓函式更短更清楚)
- 重構