新聞中心
Go語言HTTPServer開發(fā)的六種實現(xiàn)
學(xué)完了 net/http 和 fasthttp 兩個HTTP協(xié)議接口的客戶端實現(xiàn),接下來就要開始Server的開發(fā),不學(xué)不知道一學(xué)嚇一跳,居然這兩個庫還支持Server的開發(fā),太方便了。
十余年的馬尾網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整馬尾建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“馬尾網(wǎng)站設(shè)計”,“馬尾網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
相比于Java的HTTPServer開發(fā)基本上都是使用Spring或者Springboot框架,總是要配置各種配置類,各種 handle 對象。Golang的Server開發(fā)顯得非常簡單,就是因為特別簡單,或者說沒有形成特別統(tǒng)一的規(guī)范或者框架,我發(fā)現(xiàn)了很多實現(xiàn)方式,HTTP協(xié)議基于還是 net/http 和 fasthttp ,但是 handle 語法就多種多樣了。
先復(fù)習(xí)一下: Golang語言HTTP客戶端實踐 、 Golang fasthttp實踐 。
在Golang語言方面,實現(xiàn)某個功能的庫可能會比較多,有機(jī)會還是要多跟同行交流,指不定就發(fā)現(xiàn)了更好用的庫。下面我分享我學(xué)到的六種Server開發(fā)的實現(xiàn)Demo。
基于 net/http 實現(xiàn),這是一種比較基礎(chǔ)的,對于接口和 handle 映射關(guān)系處理并不優(yōu)雅,不推薦使用。
第二種也是基于 net/http ,這種編寫語法可以很好地解決第一種的問題,handle和path有了類似配置的語法,可讀性提高了很多。
第三個基于 net/http 和 github點(diǎn)抗 /labstack/echo ,后者主要提供了 Echo 對象用來處理各類配置包括接口和handle映射,功能很豐富,可讀性最佳。
第四種依然基于 net/http 實現(xiàn),引入了 github點(diǎn)抗 /gin-gonic/gin 的路由,看起來接口和 handle 映射關(guān)系比較明晰了。
第五種基于 fasthttp 開發(fā),使用都是 fasthttp 提供的API,可讀性尚可,handle配置倒是更像Java了。
第六種依然基于 fasthttp ,用到了 github點(diǎn)抗 /buaazp/fasthttprouter ,有點(diǎn)奇怪兩個居然不在一個GitHub倉庫里。使用語法跟第三種方式有點(diǎn)類似,比較有條理,有利于閱讀。
golang適合做web開發(fā)嗎
適合??蚣茏銐虺墒炝?A Survey of 5 Go Web Frameworks
小型項目你甚至不用框架,用net/http http - The Go Programming Language
常用庫也成熟了 Top - Go Search
golang的web后端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web項目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對于文件改動重新編譯其實并不是大問題,看pilu/fresh · GitHub,其實你自己寫shell腳本(也可以直接用go寫,因為它本身就是系統(tǒng)語言)監(jiān)控文件系統(tǒng)改動然后自動重新build,即使是C/C++的項目這也不是大問題,人們不用C/C++寫web是因為它們不是寫web app的最佳選擇
golang寫的代碼編譯通過后,要比scripting language魯棒,因為go compiler強(qiáng)制一些最佳實踐
Go語言做Web應(yīng)用開發(fā)的框架,哪一個更適合入門
Revel Web開源框架
個高效的Go語言Web開發(fā)框架,?其思路完全來自 Java 的?Play Framework。
特點(diǎn)
熱編譯,簡單可選,同步(每個請求都創(chuàng)建自己的goroutine來處理。
Go語言Web框架:beego
一個用Go開發(fā)的應(yīng)用框架,思路來自于tornado,路由設(shè)計來源于sinatra。
支持特性
MVC;
REST;
智能路由;
日志調(diào)試;
配置管理;
模板自動渲染;
layout設(shè)計;
中間件插入邏輯;
方便的JSON/XML服務(wù);
當(dāng)前題目:go語言實現(xiàn)網(wǎng)站開發(fā) go語言web實戰(zhàn)
文章轉(zhuǎn)載:http://fisionsoft.com.cn/article/ddjhgoc.html