這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
序言
作為一個Web開發人員,相信對架構並不陌生。那麼什麼是Web架構呢?我們學習的語言中有哪些架構呢?帶著這兩個疑問,來走進我們今天要寫的內容。
Golang學習-第一篇 Golang的簡單介紹及Windows環境下安裝、部署
Golang學習-第二篇 搭建一個簡單的Go Web伺服器
本文
什麼是Web架構?
Web application framework,Web應用程式框架(Web架構),用來支援動態網站、網路應用程式及網路服務的開發。
Web應用程式框架有助於減輕網頁開發時共通性活動的工作負載,例如許多架構提供資料庫提供者、標準樣板以及會話管理等,可提升代碼的可再用性。
認識Go語言中的架構
Web架構,特別是一個好的Web架構,讓我們在開發項目的過程中會減少很多的麻煩。不過,作為一個Golang新手,記得一定不能被架構給束縛住,Go的基礎一定要學好。當然這不是我們今天討論的對象。
Golang中的Web架構有很多,對於效能對比,這裡我不作特別的說明,如果各位有興趣的話可以Google一下某些大牛的測試。如果自己有能力也可以自己做一個測試並寫出一份測試報告。今天我們這裡就簡單介紹幾個目前大家用的比較多的架構。
beego
Martini
gin
revel
作為一名Golang新手,本人用的第一個架構就是beego,選擇她的主要原因就是簡單、易上手、文檔全面。下面我們就簡單的來說一下beego架構。
beego架構的簡介及搭建
beego簡介
beego 是一個快速開發 Go 應用的 HTTP 架構,他可以用來快速開發 API、Web 及後端服務等各種應用,是一個 RESTful 的架構,主要設計構想來源於 tornado、sinatra 和 flask 這三個架構,但是結合了 Go 本身的一些特性(interface、struct 嵌入等)而設計的一個架構
beego的架構、執行邏輯
beego架構圖
beego執行邏輯圖
beego架構的特性
簡單化
RESTful 支援、MVC 模型,可以使用 bee 工具快速地開發應用,包括監控代碼修改進行熱編譯、自動化測試代碼以及自動化打包部署。
智能化
支援智能路由、智能監控,可以監控 QPS、記憶體消耗、CPU 使用,以及 goroutine 的健全狀態,讓您的線上應用盡在掌握。
模組化
beego 內建了強大的模組,包括 Session、快取作業、日誌記錄、配置解析、效能監控、上下文操作、ORM 模組、請求類比等強大的模組,足以支撐你任何的應用。
高效能
beego 採用了 Go 原生的 http 包來處理請求,goroutine 的並發效率足以應付大流量的 Web 應用程式和 API 應用程式,目前已經應用於大量高並發的產品中。
beego的安裝
go get github.com/astaxie/beego
bee工具安裝
bee 工具是一個為了協助快速開發 beego 項目而建立的項目,通過 bee 您可以很容易的進行 beego 項目的建立、熱編譯、開發、測試、和部署。
go get github.com/beego/bee
安裝完之後,bee 可執行檔預設存放在 $GOPATH/bin 裡面,所以您需要把 $GOPATH/bin 添加到您的環境變數中,才可以進行下一步。
以上兩個安裝完成後,那麼beego環境搭建基本完成了。我們可以建立一個簡單的項目來運行一下。
進入cmd命令,選擇您的go工作目錄,執行 bee new myfirstproject 則 myfirstproject項目建立成功
執行 bee run myfirstproject 運行myfirstproject如則項目運行成功
瀏覽器輸入http://localhost:8080 如則訪問成功!
beego具體使用請訪問beego官網查看文檔