GoWeb開發學習之Iris框架(一)

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)) //第二種

}


分享到:


相關文章: