Golang介紹
Go語言是谷歌推出的一種全新的程式語言,可以在不損失應用程式效能的情況下降低程式碼的複雜性。谷歌首席軟體工程師羅布派克(Rob Pike)說:我們之所以開發Go,是因為過去10多年間軟體開發的難度令人沮喪。
谷歌資深軟體工程師羅布·派克(Rob Pike)表示,“Go讓我體驗到了從未有過的開發效率。”派克表示,和今天的C++或C一樣,Go是一種系統語言。他解釋道,“使用它可以進行快速開發,同時它還是一個真正的編譯語言,我們之所以現在將其開源,原因是我們認為它已經非常有用和強大。”
Golang語言的一些的功能:
具有現代的程式語言特色,如垃圾回收,幫助程式設計師處理瑣碎和重要的記憶體管理等問題。Go的速度也非常快,幾乎和C或C++程式一樣快,且能夠快速製作程式。
該軟體是專為構建伺服器軟體所設計(如Google的Gmail),Google認為Go還可應用到其他領域,包括在瀏覽器內執行軟體,取代JavaScript的角色。
Go也可解決現今的一大挑戰:多核心處理器。一般電腦程式通常依序執行,一次進行一項工作,但多核心處理器更適合並行處理許多工作。
相較於其他語言,Golang之所以發展迅速,與該語言特有的特色密不可分:
簡潔 快速 安全
並行 有趣 開源
記憶體管理,陣列安全,編譯迅速
Iris簡介
Iris是一款Go語言中用來開發web應用的框架,該框架支援編寫一次並在任何地方以最小的機器功率執行,如Android、ios、Linux和Windows等。該框架只需要一個可執行的服務就可以在平臺上執行了。
Iris框架以簡單而強大的api而被開發者所熟悉。iris除了為開發者提供非常簡單的訪問方式外,還同樣支援MVC。另外,用iris構建微服務也很容易。
在iris框架的官方網站上,被稱為速度最快的Go後端開發框架。在Iris的網站文件上,列出了該框架具備的一些特點和框架特性,列舉如下:
1)聚焦高效能
2)健壯的靜態路由支援和萬用字元子域名支援
3)檢視系統支援超過5以上模板
4)支援定製事件的高可擴充套件性Websocket API
5)帶有GC, 記憶體 & redis 提供支援的會話
6)方便的中介軟體和外掛
7)完整 REST API
8)能定製 HTTP 錯誤
9)原始碼改變後自動載入
等等還有很多特性,大家可以參考Iris官方文件。在GoWeb開發的諸多框架中,各個維度的效能比較如下:
在學習Iris框架過程時,我們需要有相應的配套資料才能夠完成我們的學習。下面是學習Iris框架過程中可能會用到的資料。
1) Iris官網:https://iris-go.com/
2) Iris框架原始碼地址:https://github.com/kataras/iris
3) Iris框架中文學習文件: https://studyiris.com/doc/
當然,還有其他相關資料,比如說xorm框架等,這些我們在後面的課程文件中學習到以後再做解釋和說明。
Iris框架安裝
環境要求:iris框架要求golang版本至少為1.8。各位同學可以通過開啟終端,執行:go version 命令來檢視自己機器的go環境版本。
安裝Iris框架非常簡單,使用go語言的全域性安裝第三方程式碼的命令get即可。安裝Iris框架的命令如下:
go get -u github.com/kataras/iris
複製程式碼
在本地終端中執行如上的安裝命令,等待命令執行成功,即表示Iris原始碼下載安裝完成。安裝完成Iris框架以後,能夠在本地機器的GoPath環境目錄中的src/github.com/目錄下找到iris框架對應的包名,如下圖所示:
如圖所示的kataras/iris所在的目錄就是iris框架的原始碼,如上圖所示即是安裝成功。
在iris原始碼安裝完成以後,iris框架為開發者提供了自己學習的實戰案例,供開發者自行學習。iris提供的案例在iris框架目錄中的_example目錄下,在學習時可以進行參考。
接下來我們就可以開始學習iris的相關內容,進行程式碼開發了。
Iris構造服務例項
在安裝完成Iris的原始碼後,我們就開始來編寫最簡單的一個Iris的服務。在Iris中,構建並執行一個服務例項需要兩步:
1、通過iris.New()方法可以例項化一個應用服務物件app
2、通過Run方法開啟埠監聽服務,執行服務例項
如下是一個最簡單的服務案例Demo
package main
import "github.com/kataras/iris"
func main() {
//1.建立app結構體物件
app := iris.New()
//2.埠監聽
app.Run(iris.Addr(":7999"), iris.WithoutServerError(iris.ErrServerClosed))
////application.Run(iris.Addr(":8080"))//第一種
//application.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) //第二種
}
複製程式碼