🎯 什麼情境該想到我

當你「面對一個又長又難一眼看完、要不斷捲動的函式」的時候——尤其它內部其實包含好幾個各自獨立的小任務。

⚙️ 怎麼用(步驟 / 公式)

這味道是什麼徵兆:函式越長越難理解,因為讀者得同時記住很多細節與中間狀態。真正該追求的是「意圖」與「實作」分離——函式名說出做什麼,函式體怎麼做。積極地把「一段做某件事的碼」抽成有名字的小函式,是最有效的整理。

通常用哪些重構手法對治:

  • 提煉函式(Extract Function):最主力手法,把每個可命名的意圖抽成小函式。
  • 以查詢取代暫時變數(Replace Temp with Query):清掉妨礙提煉的中間變數。
  • 分解條件式(Decompose Conditional):把龐大的 if/else 判斷與分支各自抽成有名字的函式。
  • 參數過多時搭配引入參數物件保持物件完整

判斷準則不是行數,而是「意圖與實作的語義距離」:只要一段碼需要註釋解釋,就適合抽成以該註釋為名的函式。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 別只看行數就切;抽出來的每個小函式都要有清楚的名字與單一意圖。
  • 若抽得太碎、彼此傳遞一堆參數,反而更難讀,考慮改用參數物件或提煉類別。

🔗 相關工具