GoWeb開發_Iris框架講解(一)

qfDavie發表於2019-03-27

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開發的諸多框架中,各個維度的效能比較如下:


GoWeb開發_Iris框架講解(一)

GoWeb開發_Iris框架講解(一)

Iris框架學習渠道

在學習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框架對應的包名,如下圖所示:

GoWeb開發_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)) //第二種

}
複製程式碼


相關文章