十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
語言只是工具而已,有的適合做哪一方面。 一般來說高級語言除了寫底層的東西,什么都能做。 go語言聽說過但不了解 我想應(yīng)該像python ruby一樣吧 拿python來說,可以寫web,可以寫socket,數(shù)據(jù)庫,game,圖形界面,你去看看他能做什么在右邊..
創(chuàng)新互聯(lián)企業(yè)建站,十余年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于做網(wǎng)站、網(wǎng)站制作中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。
Go 語言被設(shè)計成一門應(yīng)用于搭載 Web 服務(wù)器,存儲集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言。對于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對于游戲服務(wù)端的開發(fā)而言是再好不過了。最近黑馬程序員剛出了一套go語言的教程,還不錯,可以去視頻庫里下載,或者管播妞要也行。
不會成為web主流
go是設(shè)計初衷來做系統(tǒng)應(yīng)用和取代C++的....
目前主要用傳統(tǒng)編譯型語言編譯成機器碼的形式...
和web開發(fā)的跨平臺標(biāo)準(zhǔn)化等特性有距離...
會成為很方便系統(tǒng)應(yīng)用開發(fā)、客戶端開發(fā)的語言...
Java教程
Linux入門
更多
首頁
?
Go語言WEB框架(Gin)詳解
在 Go語言開發(fā)的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說它比 Martini 要強很多。
Gin 是 Go語言寫的一個 web 框架,它具有運行速度快,分組的路由器,良好的崩潰捕獲和錯誤處理,非常好的支持中間件和 json??傊?Go語言開發(fā)領(lǐng)域是一款值得好好研究的 Web 框架,開源網(wǎng)址:
首先下載安裝 gin 包:
go get -u github.com/gin-gonic/gin
一個簡單的例子:
package main
import "github.com/gin-gonic/gin"
func main() {
//Default返回一個默認(rèn)的路由引擎
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
//輸出json結(jié)果給調(diào)用方
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
編譯運行程序,打開瀏覽器,訪問頁面顯示:
{"message":"pong"}
gin 的功能不只是簡單輸出 Json 數(shù)據(jù)。它是一個輕量級的 WEB 框架,支持 RestFull 風(fēng)格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上傳,分組路由,Multipart/Urlencoded FORM,以及支持 JsonP,參數(shù)處理等等功能,這些都和 WEB 緊密相關(guān),通過提供這些功能,使開發(fā)人員更方便地處理 WEB 業(yè)務(wù)。
Gin 實際應(yīng)用
接下來使用 Gin 作為框架來搭建一個擁有靜態(tài)資源站點,動態(tài) WEB 站點,以及 RESTFull API 接口站點(可專門作為手機 APP 應(yīng)用提供服務(wù)使用)組成的,亦可根據(jù)情況分拆這套系統(tǒng),每種功能獨立出來單獨提供服務(wù)。
下面按照一套系統(tǒng)但采用分站點來說明,首先是整個系統(tǒng)的目錄結(jié)構(gòu),website 目錄下面 static 是資源類文件,為靜態(tài)資源站點專用;photo 目錄是 UGC 上傳圖片目錄,tpl 是動態(tài)站點的模板。
當(dāng)然這個目錄結(jié)構(gòu)是一種約定,可以根據(jù)情況來修改。整個項目已經(jīng)開源,可以訪問來詳細(xì)了解:具體每個站點的功能怎么實現(xiàn)呢?請看下面有關(guān)每個功能的講述:
靜態(tài)資源站點
一般網(wǎng)站開發(fā)中,我們會考慮把 js,css,以及資源圖片放在一起,作為靜態(tài)站點部署在 CDN,提升響應(yīng)速度。采用 Gin 實現(xiàn)起來非常簡單,當(dāng)然也可以使用 net/http 包輕松實現(xiàn),但使用 Gin 會更方便。
不管怎么樣,使用 Go 開發(fā),我們可以不用花太多時間在 WEB 服務(wù)環(huán)境搭建上,程序啟動就直接可以提供 WEB 服務(wù)了。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 靜態(tài)資源加載,本例為css,js以及資源圖片
router.StaticFS("/public", http.Dir("D:/goproject/src/github.com/ffhelicopter/tmm/website/static"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:80
router.Run(":80")
}
首先需要是生成一個 Engine,這是 gin 的核心,默認(rèn)帶有 Logger 和 Recovery 兩個中間件。
router := gin.Default()
StaticFile 是加載單個文件,而 StaticFS 是加載一個完整的目錄資源:
func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes
func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes
這些目錄下資源是可以隨時更新,而不用重新啟動程序。現(xiàn)在編譯運行程序,靜態(tài)站點就可以正常訪問了。
Revel Web開源框架
個高效的Go語言Web開發(fā)框架,?其思路完全來自 Java 的?Play Framework。
特點
熱編譯,簡單可選,同步(每個請求都創(chuàng)建自己的goroutine來處理。
Go語言Web框架:beego
一個用Go開發(fā)的應(yīng)用框架,思路來自于tornado,路由設(shè)計來源于sinatra。
支持特性
MVC;
REST;
智能路由;
日志調(diào)試;
配置管理;
模板自動渲染;
layout設(shè)計;
中間件插入邏輯;
方便的JSON/XML服務(wù);
之前沒有g(shù)o語言,現(xiàn)在黑馬更新了c/c++的課程,已經(jīng)增加了go語言開發(fā)實戰(zhàn)部分,進一步提升學(xué)員的競爭力,助力學(xué)員找到一個好工作。