天天看點

[Go架構] go有哪些常用的快速開發web架構?

Golang語言的Web開發有很多很多的架構可用,這裡做個列舉。

Beego架構

Beego架構是astaxie的Goweb開發的開源架構。Beego架構最大的特點是由八個大的基礎子產品組成,如下圖所示:

[Go架構] go有哪些常用的快速開發web架構?
[Go架構] go有哪些常用的快速開發web架構?

八大基礎子產品的特點是可以根據自己的需要進行引入,子產品互相獨立,子產品之間耦合性低。

相應的Beego的缺點就是全部使用時比較臃腫,通過bee工具來建構項目時,直接生成項目目錄和耦合關系。這會導緻在項目開發過程中受制性較大,本來Golang語言是靈活,在Beego中會收到一些限制,當然這個限制是有限的。

Beego架構受歡迎的原因還有一個就是Beego由漢語官方網站,網址如下:https://beego.me/docs/intro/,并配備有完整的學習文檔和項目案例。

Gin架構

Gin是一個golang的微架構,封裝比較優雅,API友好,源碼注釋比較明确,已經釋出了1.0版本。具有快速靈活,容錯友善等特點。其實對于golang而言,web架構的依賴要遠比Python,Java之類的要小。自身的net/http足夠簡單,性能也非常不錯。架構更像是一些常用函數或者工具的集合。借助架構開發,不僅可以省去很多常用的封裝帶來的時間,也有助于團隊的編碼風格和形成規範。

目前在很多使用Golang的中小型公司中進行業務開發,使用Gin架構的很多,大家如果想使用golang進行熟練web開發,可以多關注一下這個架構。

Gin架構源碼位址:https://github.com/gin-gonic/gin

Gin學習文檔位址暫時沒有找到系統的,如果入門學習的話,可以關注這個:https://www.jianshu.com/p/98965b3ff638

在企業開發環境下,還需要學習用到xorm架構,這裡一并列一下xorm架構的資料。xorm架構學習文檔:http://xorm.io/docs

Iris架構

Iris架構在其官方網站上被描述為Go開發中最快的Web架構,并給出了多架構和多語言之前的性能對比。目前在github上,Iris架構已經收獲了14433個star和1493個fork,可見該架構也非常受歡迎。在實際的開發中,Iris與Gin的學習曲線幾乎相同,是以,掌握了Gin就可以輕松掌握Iris架構。Iris架構的相關資料如下,供大家學習:

  • Iris官網:https://studyiris.com/example/iris.html
  • Iris源碼位址:https://github.com/kataras/iris
  • Iris系統學習文檔:https://iris-go.com/

Echo架構

Echo是個快速的HTTP路由器(零動态記憶體配置設定),也是Go的微型Web架構。其具備快速HTTP路由器、支援擴充中間件,同時還支援靜态檔案服務、WebSocket以及支援制定綁定函數、制定相應渲染函數,并允許使用任意的HTML模版引擎。可以通過如下一張圖表明Echo架構的路由性能:

[Go架構] go有哪些常用的快速開發web架構?
[Go架構] go有哪些常用的快速開發web架構?

Echo的相關資料如下,供大家進行學習:

  • 關于Echo架構的介紹:https://mp.weixin.qq.com/s/BlyQvkw84dBhs4mX_SB5DQ
  • Echo架構官網:https://echo.labstack.com/
  • Echo源碼位址:https://github.com/labstack/echo

上面列舉的,都是我自己用的過的和熟悉的,如果作為一個goWeb開發者程式員來說,大部分業務絕對足夠用了,上面的這些架構在github上的star數都超過了1萬,有的接近2萬。說明這些架構是最受開發者喜歡和接受的,是以可以從上面這些架構學起。

如果還想了解其他的架構,可以關注的有:Buffalo架構、Revel架構、Martini架構、Traffic架構、Goji架構等等。

最後,架構隻是能更快速的幫我們建構業務,提升開發效率。掌握Golang語言的特點和程式設計核心,才能寫出自己的娴熟代碼。