本系列文章將帶領讀者從零開始,使用 Go 語言打造一個完整、可維護、可測試的生產級 API 服務。我們將深入探討現代後端開發中的各個環節,從專案的架構設計、核心功能實現,到最終的測試、部署與維運。專案將採用六角形架構(Clean Architecture)思想,並整合 Gin、GORM、Docker、Swagger、golangci-lint 等業界常用工具與技術。
歡迎來到《Go Clean Architecture API 開發全攻略》系列的第一篇文章! 近年來,Go 語言以其簡潔的語法、出色的併發性能和高效的編譯速度,...
在上一篇文章中,我們建立了專案的基礎目錄結構。你可能會想,為什麼要分得這麼細?不能直接在 main.go 裡處理所有事情嗎? 問得好。答案在於我們的目標:打造一...
寫在最前面,最重要的先說 .env 檔案放置的都是 資料庫密碼, API 金鑰 等等不應該外洩的內容,務必務必要保證不要被提交到 git 或任何一種版本控制管理...
為什麼需要日誌系統? 日誌系統是任何軟體應用程式中不可或缺的一環。它為開發者和維運人員提供了洞察應用程式內部運作的窗口。一個好的日誌系統能幫助我們: 除錯與...
在前面的文章中,我們討論了選擇六角形架構的「Why」。 現在,是時候深入探討「What」和「How」了: 一個清晰、可維護的 Go 專案,其內部結構應該是什麼樣...
建立 Golang Web Server 常見選擇: net/http(標準庫):穩定、無外部依賴,但需撰寫較多樣板碼。 Gin:輕量、速度快,路由設計彈...
在開始實作 Handler 之前,我們先來討論一下程式碼的職責切分。 在軟體設計中,有一個重要的原則叫做「單一職責原則」(Single Responsibili...
Usecase 層是我們應用程式的核心,它體現了所有的業務流程。它的職責是: 接收來自 Controller 的簡單指令和數據(DTOs)。 調度一個或多個...
如何處理使用者的密碼,是衡量一個後端開發者專業程度和安全意識的試金石。一旦處理不當,導致使用者密碼洩漏,將會對使用者和公司帶來災難性的後果。本篇文章,我們將學習...
在上一篇我們解決了「如何驗證密碼」的問題,現在要解決下一個問題:「驗證成功後,如何讓使用者保持登入狀態?」答案就是使用 Token。 本文將深入探討現代無狀態...