提取函式(Extract Function)是最常見的重構技巧之一:
當你理解某段程式碼的功能後,將它抽取成獨立函式,並賦予具描述性的名稱。

Extract Function

核心目標是將 意圖(Intent)實作(Implementation) 分離——
如果你須閱讀函式內部才能理解它在做什麼,那它就是提取的好候選者。

何時該提取函式?

  • 邏輯複雜:必須深入實作細節才能理解程式碼在做什麼
  • 區塊過長:程式碼區塊超過約六行(現代編譯器已能優化函式呼叫的成本)
  • 提升可讀性:命名良好的函式本身就是最佳的文件
  • 重用與測試:提取後的行為可在其他地方重用,也能獨立測試

範例#

重構前#

if __name__ == "__main__":
    numbers = [1, 2, 3, 4, 5]
    total = 0
    for number in numbers:
        total += number
    print(total)

重構後#

def calculate_sum(numbers):
    total = 0
    for number in numbers:
        total += number
    return total


if __name__ == "__main__":
    numbers = [1, 2, 3, 4, 5]
    result = calculate_sum(numbers)
    print(result)