Jenifer.Code.World

Jenifer 的技術筆記

Vite 是一個以 ES Modules 為基礎、具熱更新 (HMR) 的前端開發工具。開發階段直接讓瀏覽器載入原始碼,不需要預先打包。發佈階段再透過 Rollup 或 Rolldown 打包成靜態檔案。

閱讀全文 »

TypeScript 專案中,模組之間的匯入 (import) 路徑若處理不好,會變成地獄級相對路徑,例如:

1
import { getUser } from "../../../utils/api";

為了解決這問題,我們需要理解 tsconfig.json 中與「路徑」有關的設定,特別是 baseUrlpathsrootDiroutDir

閱讀全文 »

容器化是一種軟體部署流程,它將應用程式的程式碼與其運作所需的所有檔案和函式庫打包在一起,讓應用程式可以在任何基礎設施上運行。傳統上,要在電腦上執行任何應用程式,你必須安裝與機器作業系統相符的版本。例如,你需要在 Windows 機器上安裝 Windows 版本的軟體套件。然而,有了容器化技術,你只需建立一個單一的軟體套件,也就是容器,就可以在所有類型的裝置和作業系統上執行

閱讀全文 »

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

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

閱讀全文 »

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

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

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

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

閱讀全文 »
0%