知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
為什么我堅(jiān)持用Go語言做Web應(yīng)用開發(fā)框架?
發(fā)表時(shí)間:2018-6-19
發(fā)布人:葵宇科技
瀏覽次數(shù):40
點(diǎn)擊上方“CSDN”,選擇“置頂公眾號(hào)”
關(guān)鍵時(shí)刻,第一時(shí)間送達(dá)!
【CSDN編者按】很多情況下,企業(yè)上線或需要快速迭代一款新的產(chǎn)品,但會(huì)發(fā)現(xiàn)原有的后端框架已不太適用,甚至影響了開發(fā)調(diào)試速度,那么尋找一種新的開發(fā)框架和編程語言變得極為迫切。本篇將揭秘用于創(chuàng)建網(wǎng)站和REST API的最流行、最強(qiáng)力和最全面的Go框架。
Google的Go語言(又名Golang)已成為編寫網(wǎng)絡(luò)服務(wù)和API強(qiáng)有力的選擇。它可以編譯成快速運(yùn)行的原生代碼,天生支持異步編程,還擁有廣泛和不斷擴(kuò)大的用戶群。
下面列出了網(wǎng)絡(luò)開發(fā)中用到的Go語言的主要框架。一些框架旨在簡(jiǎn)化用戶的使用,如API訪問點(diǎn)等。還有一些主要是為了處理全面的網(wǎng)站開發(fā),或者可以根據(jù)工作需要的組件擴(kuò)張或縮減開發(fā)。
▌Go網(wǎng)絡(luò)開發(fā)框架:Beego
在某些方面,Beego會(huì)讓人聯(lián)想到Python中包羅萬象的Django Web框架。它具備各種Web應(yīng)用程序的通用功能,總共有八個(gè)模塊,你可以根據(jù)需要選擇使用。除了大多數(shù)Web框架中常見的模型-視圖-控制器(model-view-controller,MVC)組件外,它還包括訪問數(shù)據(jù)庫的對(duì)象關(guān)系映射(object-relationship map,ORM)、內(nèi)置緩存處理程序、會(huì)話處理工具、日志記錄機(jī)制和常用的操作HTTP對(duì)象的庫。
Beego還有一個(gè)與Django很相似的地方是它的命令行工具。例如,你可以使用bee從頭創(chuàng)建Beego應(yīng)用或管理現(xiàn)有的應(yīng)用。
▌Go網(wǎng)絡(luò)開發(fā)框架:Gin
Go的第一個(gè)Web開發(fā)框架是Martini,但這個(gè)項(xiàng)目已經(jīng)停止了維護(hù)。然而,其他Go框架如雨后春筍般紛紛涌現(xiàn),它們使用Martini的基本思想,但是具有更好的性能和更多的功能。
Gin就是其中的一個(gè)項(xiàng)目。它使用修改過的的httprouter軟件包來提高速度,并為很多常見的場(chǎng)景提供處理程序,包括中間件、文件上傳、日志、將前端HTML組件綁定到后臺(tái)的數(shù)據(jù)結(jié)構(gòu)等等。其穩(wěn)定版API是1.x版本,所以未來的變更應(yīng)該不會(huì)破壞現(xiàn)有的Gin應(yīng)用。
▌Go Web開發(fā)框架:Gorilla
Gorilla的定位是“Web工具箱”,而并非MVC風(fēng)格的框架。它提供的庫可以幫忙解決Web服務(wù)編程中各種底層的問題,包括context(在請(qǐng)求期間保存狀態(tài))、mux(路由和調(diào)度),以及實(shí)現(xiàn)HTTP上的安全cookie、會(huì)話、websocket和RPC等功能。
Gorilla沒有提供模板、表單和其他前端部分。你需要自己準(zhǔn)備這些部分,你可以在其他框架中使用Gorilla的各個(gè)組件,或是在獨(dú)立組件中集成用Gorilla編寫的東西。
▌Go Web開發(fā)框架:Echo
Echo是另一個(gè)小框架,主要面向API。例如,它并沒有提供模板系統(tǒng),所以你可以根據(jù)需要使用Go自己的html/template。但是,Echo提供了幾種常常用于API的中間件模塊,例如基本的認(rèn)證和密鑰身份驗(yàn)證、壓縮、代理和日志記錄。
Echo還提供了大量實(shí)用的recipe,其中很多無需大費(fèi)周折就能實(shí)現(xiàn)。例如,如果你想使用Let’s Encrypt來管理HTTPS證書,那么可以設(shè)置一種recipe來自動(dòng)安裝這些證書。
▌Go Web開發(fā)框架:Iris
Iris的創(chuàng)建者稱其為“真正屬于Go的Express.js”,也就是說,它是JavaScript / Node.js的Web框架的Go語言版,它使用最小設(shè)計(jì),絕大部分功能都由插件提供。Iris提供基本的MVC功能,自帶對(duì)中間件、會(huì)話、路由和緩存的支持。
以下文檔包含很多Iris的示例,包括與React前端的交互,或在Docker / Kubernetes環(huán)境中運(yùn)行的項(xiàng)目:https://iris-go.com/v10/recipe
▌Go網(wǎng)絡(luò)開發(fā)框架:Revel
Ruby>除了提供基本的MVC,Revel還允許你自由使用其他組件來滿足其他需求。你可以使用Go自己的原生html/template包,或自己提供。同樣,對(duì)于HTTP引擎,你也可以使用Go自己的或第三方提供的。緩存可以在本地的內(nèi)容中完成,也可以通過Memcached或Redis在后臺(tái)完成。但是,該框架沒有數(shù)據(jù)庫的原生ORM。Revel文檔的一個(gè)例子(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
譯者:彎月;責(zé)編:楊麗
相關(guān)案例查看更多
相關(guān)閱讀
- 小程序公司
- web開發(fā)技術(shù)
- 關(guān)鍵詞快速排名
- 楚雄小程序開發(fā)
- 電商網(wǎng)站建設(shè)
- 網(wǎng)站維護(hù)
- 退款
- 云南小程序開發(fā)費(fèi)用
- 軟件定制
- 云南網(wǎng)站建設(shè)方案 doc
- 開發(fā)微信小程序
- 汽車報(bào)廢回收軟件
- 云南網(wǎng)站設(shè)計(jì)
- 百度推廣
- 模版消息
- 云南網(wǎng)站建設(shè)百度
- 網(wǎng)站優(yōu)化
- 網(wǎng)站建設(shè)專家
- 云南網(wǎng)站開發(fā)哪家好
- 汽車回收管理系統(tǒng)
- 微信分銷
- 人人商城
- 云南企業(yè)網(wǎng)站
- 報(bào)廢車管理系統(tǒng)
- 日歷組件
- 網(wǎng)站建設(shè)優(yōu)化
- 開通微信小程序被騙
- 云南網(wǎng)絡(luò)營銷
- 表單
- 安家微信小程序