本系列文章將帶領讀者從零開始,使用 Go 語言打造一個完整、可維護、可測試的生產級 API 服務。我們將深入探討現代後端開發中的各個環節,從專案的架構設計、核心功能實現,到最終的測試、部署與維運。專案將採用六角形架構(Clean Architecture)思想,並整合 Gin、GORM、Docker、Swagger、golangci-lint 等業界常用工具與技術。
在前面的文章中,我們已經建立起完整的身份驗證流程,從密碼加密到 JWT 的簽發與驗證。然而,我們還沒處理使用者資料的存取。是時候為這些資料打造一個永久的家了。...
想像一個場景:開發者 A 在本地為 users 表新增了一個 age 欄位,並提交了對應的程式碼。開發者 B 拉取了最新程式碼,但他的本地資料庫沒有 age 欄...
在前一章中,我們建立了資料庫連線和遷移機制,但還沒有實際操作資料庫。現在,我們將實作資料庫層。 在本章中,我們將實作一個基於 GORM 的 MySQL Adap...
在前幾章,我們已經實作了 UseCase 層以及其外部依賴,現在我們要來說明 Controller 層的職責,並實作先前遺留下尚未實作的 Register fu...
前面的文章中,我們介紹了六角架構(Hexagonal Architecture)的基本概念及其優點。這次,我們將深入探討六角架構在開發時所帶來的便利性,並以新增...
隨著專案逐漸成形,我們需要執行的指令也越來越多:編譯、執行、測試、程式碼檢查...。如果每位開發者都手動輸入這些指令,不僅繁瑣,而且容易因參數不同而導致結果不一...
我們前面已經完成的基礎的架構和程式碼撰寫,現在是時候將我們的應用程式容器化,並使用 Docker Compose 來管理多個服務(應用程式、MySQL 和 Re...
在現代軟體開發中,API(應用程式介面)是前後端溝通的橋樑。隨著專案規模的擴大,手動維護 API 文件變得越來越困難且容易出錯。為了解決這個問題,採用自動化工具...
在我們的六角形架構中,Domain 層處於同心圓的最中心。它代表了我們業務的本質,是整個系統中最穩定、最不應輕易變動的部分。但是,一個好的 Domain Mod...
在六邊形架構中,會穿過邊界的,只有 domain 物件 和 interface adapter 之間的資料結構,像是 Input、Output、DBUserMo...