Jenifer.Code.World

Jenifer 的技術筆記

在 Web 後端開發中,匯出資料報表是很常見的功能。其中,CSV (Comma-Separated Values) 是一種最廣泛使用的檔案格式,因為它簡潔且通用性高,無論是用 Excel、Google Sheets 或其他應用程式都能輕鬆開啟。

將檔案匯出的邏輯封裝成一個獨立的 Service,是軟體設計中一個非常重要的原則:單一職責原則 (Single Responsibility Principle)。這讓你的程式碼更容易維護、測試,並且具備高度的可重用性

閱讀全文 »

依賴注入 (Dependency Injection,簡稱 DI) 是一種軟體設計模式,用來降低程式碼模組之間的耦合性 (Coupling)。

想像一下,你今天想煮一杯咖啡:

  • 不使用 DI:你需要自己準備咖啡豆、磨豆機、濾杯和熱水壺。你煮咖啡的動作和這些工具是緊密相連的,如果你想換成用咖啡機,你必須修改你煮咖啡的方式。
  • 使用 DI:你只需要專注於「煮咖啡」這個動作。而一個「管家」會為你準備好所有東西,並直接送到你面前。你只需要告訴管家你需要「一杯熱騰騰的咖啡」,不需要知道這些東西是從哪裡來的。

在程式設計中,這個「管家」就是 DI 容器 (DI Container),它負責建立 (或實例化) 你需要的物件 (依賴),並將它們自動傳遞給需要這些物件的類別。

閱讀全文 »

在物件導向程式設計中,繼承 (Inheritance) 是一個非常核心的概念。透過繼承,我們可以讓一個類別 (稱作子類別衍生類別 Derived Class) 從另一個類別 (稱作父類別基底類別 Base Class) 延伸 (inherit) 出去,擁有基底類別的可繼承的欄位、屬性與方法,並且又可以有自己獨特的欄位、屬性與方法。這可以提高程式的重複使用性,也讓系統架構更有彈性與可擴充性。

閱讀全文 »
0%