當前位置:
首頁 > 最新 > 為什麼我堅持用Go語言做Web應用開發框架?

為什麼我堅持用Go語言做Web應用開發框架?

關鍵時刻,第一時間送達!

【CSDN編者按】很多情況下,企業上線或需要快速迭代一款新的產品,但會發現原有的後端框架已不太適用,甚至影響了開發調試速度,那麼尋找一種新的開發框架和編程語言變得極為迫切。本篇將揭秘用於創建網站和REST API的最流行、最強力和最全面的Go框架。

Google的Go語言(又名Golang)已成為編寫網路服務和API強有力的選擇。它可以編譯成快速運行的原生代碼,天生支持非同步編程,還擁有廣泛和不斷擴大的用戶群。

下面列出了網路開發中用到的Go語言的主要框架。一些框架旨在簡化用戶的使用,如API訪問點等。還有一些主要是為了處理全面的網站開發,或者可以根據工作需要的組件擴張或縮減開發。

Go網路開發框架:Beego

在某些方面,Beego會讓人聯想到Python中包羅萬象的Django Web框架。它具備各種Web應用程序的通用功能,總共有八個模塊,你可以根據需要選擇使用。除了大多數Web框架中常見的模型-視圖-控制器(model-view-controller,MVC)組件外,它還包括訪問資料庫的對象關係映射(object-relationship map,ORM)、內置緩存處理程序、會話處理工具、日誌記錄機制和常用的操作HTTP對象的庫。

Beego還有一個與Django很相似的地方是它的命令行工具。例如,你可以使用bee從頭創建Beego應用或管理現有的應用。

Go網路開發框架:Gin

Go的第一個Web開發框架是Martini,但這個項目已經停止了維護。然而,其他Go框架如雨後春筍般紛紛湧現,它們使用Martini的基本思想,但是具有更好的性能和更多的功能。

Gin就是其中的一個項目。它使用修改過的的httprouter軟體包來提高速度,並為很多常見的場景提供處理程序,包括中間件、文件上傳、日誌、將前端HTML組件綁定到後台的數據結構等等。其穩定版API是1.x版本,所以未來的變更應該不會破壞現有的Gin應用。

Go Web開發框架:Gorilla

Gorilla的定位是「Web工具箱」,而並非MVC風格的框架。它提供的庫可以幫忙解決Web服務編程中各種底層的問題,包括context(在請求期間保存狀態)、mux(路由和調度),以及實現HTTP上的安全cookie、會話、websocket和RPC等功能。

Gorilla沒有提供模板、表單和其他前端部分。你需要自己準備這些部分,你可以在其他框架中使用Gorilla的各個組件,或是在獨立組件中集成用Gorilla編寫的東西。

Go Web開發框架:Echo

Echo是另一個小框架,主要面向API。例如,它並沒有提供模板系統,所以你可以根據需要使用Go自己的html/template。但是,Echo提供了幾種常常用於API的中間件模塊,例如基本的認證和密鑰身份驗證、壓縮、代理和日誌記錄。

Echo還提供了大量實用的recipe,其中很多無需大費周折就能實現。例如,如果你想使用Let』s Encrypt來管理HTTPS證書,那麼可以設置一種recipe來自動安裝這些證書。

Go Web開發框架:Iris

Iris的創建者稱其為「真正屬於Go的Express.js」,也就是說,它是JavaScript / Node.js的Web框架的Go語言版,它使用最小設計,絕大部分功能都由插件提供。Iris提供基本的MVC功能,自帶對中間件、會話、路由和緩存的支持。

以下文檔包含很多Iris的示例,包括與React前端的交互,或在Docker / Kubernetes環境中運行的項目:https://iris-go.com/v10/recipe

Go網路開發框架:Revel

Ruby on Rails為MVC風格的Web框架提供了一個通用模式,許多其他語言都仿照Ruby on Rails實現了自己的框架。Revel的創建者將其視作Rails的靈魂。

除了提供基本的MVC,Revel還允許你自由使用其他組件來滿足其他需求。你可以使用Go自己的原生html/template包,或自己提供。同樣,對於HTTP引擎,你也可以使用Go自己的或第三方提供的。緩存可以在本地的內容中完成,也可以通過Memcached或Redis在後台完成。但是,該框架沒有資料庫的原生ORM。Revel文檔的一個例子(https://revel.github.io/examples/booking.html)中使用了Gorp庫,但理論上來說你可以使用任何Go ORM。

原文:https://www.infoworld.com/article/3274464/web-development/6-must-have-web-frameworks-for-the-google-go-language.html

作者:Serdar Yegulalp

譯者:彎月;責編:楊麗

GIF


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

A 站徹底要涼?近千萬條用戶數據外泄!
程序員們,是時候面向故事編程了!

TAG:CSDN |