首頁 > 後端開發 > Golang > Laravel to Go:我的旅程和 Fiber API 樣板的創建

Laravel to Go:我的旅程和 Fiber API 樣板的創建

Susan Sarandon
發布: 2024-12-29 11:02:11
原創
900 人瀏覽過

Laravel to Go: My Journey and the Creation of a Fiber API Boilerplate

沉浸在 Laravel 四年多之後,我已經非常熟悉 MVC(模型-視圖-控制器)架構。它的簡單性和結構使其使用起來很愉快,Laravel 精心組織的資料夾可幫助開發人員保持正軌。您始終知道將程式碼放在哪裡,並且廣泛的內建工具(資料庫連接、Redis、佇列、遷移、ORM 等)使設定變得無縫。只需對您的環境進行一些調整,您的應用程式就可以運行了。

對我來說,Laravel 的 MVC 方法仍然是最強大的方法之一。 模型 定義您的數據,視圖 確定使用者看到的內容,控制器 管理您的業務邏輯。它簡單而結構化,Laravel 預設提供此設置,使其成為一個出色的開發框架。

但是隨著我職業生涯的進步以及我跨行業和企業的工作,我意識到 Laravel 的 MVC 方法並不總是足夠的,特別是對於複雜的應用程式。


擴展 Laravel 的 MVC 複雜性

MVC 在簡單​​的應用程式中表現出色,但當邏輯變得更加複雜時可能會出現不足。例如,當使用 Laravel 作為 API 時,View 層經常未被使用。同時,將所有邏輯放入控制器中很快就會導致文件臃腫且難以維護。

為了解決這個問題,我透過引入 ServiceRepository 層來擴充 Laravel 的 MVC 結構,建立如下所示的流程:

控制器 → 服務 → 儲存庫 → 模型

  • 控制器:處理驗證並指導應用程式流程。
  • 服務:管理業務邏輯,分為可重複使用的函數。
  • 儲存庫:管理資料庫互動。
  • 模型:定義資料結構。

這種分層方法使程式碼更易於維護和擴展。隨著時間的推移,我已經習慣了這種結構,因此在其他專案中採用它感覺很自然。


輸入 Go:全新挑戰

當我開始使用 Go(Golang)時,感覺就像踏入了未知的領域。 Go 與 PHP 有很大不同,缺乏固有的資料夾結構。它也不是物件導向的語言,所以我不能簡單地複製我從 Laravel 中學到的東西。

經過一番嘗試和錯誤,我決定堅持使用我熟悉的內容:CSRM 概念(控制器、服務、儲存庫、模型)。我將這種結構改編為 Go,儘管它需要一些創造性思維。此外,我還探索了可以簡化開發的框架。我嘗試了 GinFiber,最後選擇 Fiber 是因為它的速度、現代功能和活躍的社群。


My Fiber API 樣板的誕生

使用 Go 和 Fiber 工作兩年多後,我決定創建一個樣板來簡化 API 開發。這不僅適合我——我也想幫助其他人快速建立他們的專案。

結果:Fiber API 樣板

此樣板檔案專門用於 API,因此它不包含視圖渲染或模板引擎等功能。文件夾結構的靈感來自:

  • Golang專案佈局標準
  • Ayoub Zulfiqar 的專案佈局要點

我也藉鏡了Laravel的許多思想,像是ORM、資料庫連線、Redis、佇列和身分驗證。雖然它不如 Laravel 那麼全面,但對於建構通用 API 來說已經足夠了。


樣板的特點

以下是樣板目前提供的內容:

  1. 驗證:開箱即用的簡化使用者管理。
  2. 錯誤回報:與Sentry整合。
  3. 應用程式監控:使用 New Relic 進行即時洞察。
  4. 熱重載:包含 Air 以加快開發速度。
  5. 靜態程式碼檢查:使用 GolangCI-Lint。
  6. API 文件:透過 Swag 內建 Swagger 支援。
  7. 依賴注入:由 Google Wire 提供支援。
  8. 部署:附帶 Docker 和 Supervisor,可實現無縫部署。

儲存庫還包括範例程式碼和詳細的自述文件,以引導您完成每個資料夾和功能。


建設未來

雖然樣板已經可以使用,但我計劃透過添加遷移、事件偵聽器和命令等工具來進一步擴展它。這是一個不斷發展的項目,旨在與用戶一起成長。

歡迎您探索和使用樣板檔案。您可以隨意自訂它——添加您喜歡的工具或刪除您不需要的工具。如果您有建議或功能請求,請建立問題或提交拉取請求。


開始使用

查看 Fiber API 樣板 並試試看。我希望它能像我一樣幫助簡化您的 Go API 開發之旅。讓我們一起創造一些令人驚奇的東西!

以上是Laravel to Go:我的旅程和 Fiber API 樣板的創建的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板