由于工作需要,這些年來也接觸了不少的開發框架,Golang的開發框架比較多,不過基本都是Web"框架"為主。這里稍微打了個引號,因為大部分"框架"從設計和功能定位上來講,充其量都只能算是一個組件,需要項目使用的話得自己四處再去找找其他的組件,或者自己造輪子。如果用于Web開發,這些"框架"的Web開發能力均已完備,無太大差別,且均是自標準庫net/http.Server的二次封裝。由于框架眾多,這里筆者只選擇了幾個曾做過技術選型評估、較為熟悉,且目前比較流行和典型的Golang"框架",從適用于業務項目開發框架的角度,做一個簡單的橫向比較,以便大家在項目框架選型時做個參考。
評估指標
由于微信對表格支持得不太好,因此這里通過截圖的形式分享給大家。原本表格中帶有相關的鏈接也發不出來,想了解詳情的朋友請點擊文章末尾的“閱讀原文”。
Golang框架選型比較: goframe, beego, iris和gin 評估指標1
Golang框架選型比較: goframe, beego, iris和gin 評估指標2
橫向比較
- 以下部分對比參數涉及評分的部分,滿分總共按照10分為標準。
- 如果標記為"-"的部分,表示不支持或者需要引入第三方插件支持。
- 以下特性如果官網提供文檔則直接提供文檔地址,找不到文檔但是筆者知道有就會簡單標注。
由于微信對表格支持得不太好,因此這里通過截圖的形式分享給大家。原本表格中帶有相關的鏈接也發不出來,想了解詳情的朋友請點擊文章末尾的“閱讀原文”。
Golang框架選型比較: goframe, beego, iris和gin 橫向比較1
Golang框架選型比較: goframe, beego, iris和gin 橫向比較2
Golang框架選型比較: goframe, beego, iris和gin 橫向比較3
綜合選擇
經過一些比較以及內部團隊的交流,目前公司主要選擇goframe作為項目主體框架。原因很簡單,只有它滿足了我們項目對于框架的基本要求。并且goframe的中文文檔做得很棒,源碼適合學習,團隊容易快速上手。還有一個重要原因,我們的團隊大部分都是PHP轉Go,使用goframe寫了幾個demo就倍感親切,容易在PHP團隊中快速推廣Golang技術。此外,由于框架是模塊化設計,我們也可以按需引用,個別模塊我們可以替換為公司自研模塊。
來源:
https://goframe.org/pages/viewpage.action?pageId=3673375