當原始資料需被轉換成多處使用的衍生資訊時,
最好將重複轉換邏輯整合成單一轉換函式(Transform Function)。
這能避免重複程式碼,並將整個流程的驗證集中管理。

Combine Functions into Transform

與將函式移入類別不同,這項技巧特別適合來源資料保持不可變(Immutable)的情境。

何時該將函式合併成轉換?

  • 重複轉換:多個函式對相同輸入執行相關的操作
  • 不可變來源資料:原始資料不會被修改,因此純粹的轉換函式很適合
  • 簡化測試:你只需要為一個合併後的函式撰寫測試,而非許多小函式

範例#

重構前#

def to_upper(text):
    return text.upper()


def reverse_text(text):
    return text[::-1]


if __name__ == "__main__":
    input_text = "hello"
    transformed_text = reverse_text(to_upper(input_text))
    print(f"Transformed Text: {transformed_text}")

重構後#

def transform_text(text):
    return text.upper()[::-1]


if __name__ == "__main__":
    input_text = "hello"
    transformed_text = transform_text(input_text)
    print(f"Transformed Text: {transformed_text}")