日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用

發布時間:2023/12/3 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Go語言是一種跨平臺(Mac OS、Windows、Linux 等)的靜態編譯型語言。擁有媲美C語言的強大性能,支持靜態類型安全,在普通計算機上能幾秒內快速編譯一個大項目,開發效率跟動態語言相差無幾。

Go語言在國內擁有非常活躍的社區,未來發展十分看好。當前Go語言主要應用于后端服務的開發,未來隨著Go項目的完善,在系統、游戲、UI界面、AI、物聯網等領域,都將被廣泛使用。

當我們在開發實現中需要引入第三方包的解決方案的時候,就需要對于Go語言第三方包進行下載,引入及版本管理。Go語言擁有很多優秀的第三方包,在后端技術的解決方案上面,第三方包的使用可以實現相應功能需求,而且便于安裝與引用。

01

管理及使用

? ? 1、第三方包的安裝

? ?(1)使用go get 安裝

在互聯網環境下,可以直接通過go get命令進行第三方包的安裝。

比如要安裝 github.com/gin-gonic/gin 則可以通過以下命令:

需要注意的是,執行go get 命令需要先安裝git命令,并配置好git全局變量。

(2)使用源碼包安裝

?由于國內網絡問題,很多時候go get命令并不能安裝,所以就需要到github.com網站上面手動下載源碼包,然后拷貝到相應的工程目錄中進行引用。

比如要安裝 github.com/golang/protobuf/proto

需要去github.com/golang/protobuf下載源碼包,解壓之后拷貝到工程目錄中,以供以后程序開發及編譯時使用。

需要注意的是,GO 和Java 不同,所有import的包必須在%GOPATH路徑下,如果直接導入源碼路徑下的包,編譯會報錯。因為GO只會在$GOPATH 下找包的依賴,而不會在當前工程下找。如果新加入的第三方包是與工程目錄脫離,則在使用或編譯之前需要將第三方包所在的目錄加入到$GOPATH中。

2、管理辦法

第三方包的管理方案有很多種,之前出現過dep和vendor。但是自從在1.11版本初步引入GoModule模塊之后,1.12版本開始正式支持。GoModule是官方提供的包管理解決方案。通過GoModule,開發者可以把工程放在GOPATH之外的位置,使管理更加靈活。

使用GoModule管理依賴后會在項目根目錄下生成兩個文件go.mod和go.sum。

(1)變量設置

要啟用GoModule支持首先要設置環境變量GO111MODULE,通過它可以開啟或關閉模塊支持,它有三個可選值:off、on、auto,默認值是auto。

設置GO111MODULE=on之后就可以使用GoModule了,編譯時會忽略GOPATH和vendor文件夾,只根據go.mod下載依賴。

?因為需要互聯網環境進行管理,在國內網絡環境下,部分第三方包無法正常下載,所以建議設置代理參數GOPROXY,推薦設置為https://goproxy.cn。

?(2)常用命令

? ?初始化相關的命令如下:

通過go mod init命令初始化當前文件夾, 創建go.mod文件。go.mod文件記錄了項目所有的依賴信息,文件內容大致如下:

其中,module用來定義包名,require用來定義依賴包及版本,indirect表示間接引用。

? ? (3)管理依賴包

? ? ?在項目中執行go get命令可以下載依賴包,并且還可以指定下載的版本。

如果下載所有依賴可以使用go mod download命令。

我們在代碼中刪除依賴代碼后,相關的依賴包并不會在go.mod文件中自動移除。這種情況下我們可以使用go mod tidy命令更新go.mod中的依賴關系。

如果需要對一個已經存在的項目啟用GoModule,可以按照以下步驟操作:

3、引用方式

在應用程序中直接import即可。

比如要使用 github.com/gin-gonic/gin 則在引用文件中使用以下引用代碼即可:

02

介紹與應用

下面介紹幾類常用的第三方包的使用場景及應用示例。

1、數據加密

github.com/ZZMarquis/gm

使用場景:實現國密SM2/SM3/SM4算法;實現SM2 X509v3證書簽發和解析。

?開源代碼Star數:★96

?使用方式:

?國密sm3加密實現,示例如下:

國密sm4加密實現,示例如下:

? ? ?golang.org/x/crypto

? ? 使用場景:crypto密碼學的補充包。Pbkdf2非對稱算法的go實現。

??? 開源代碼Star數:★1.7K

??? 使用方式:

? ? Pbkdf2非對稱算法,示例如下:

? ? 2、文件讀取

? ? github.com/spf13/viper

? ? 使用場景:獲取配置文件內容。

??? 開源代碼Star數:★11.4K

??? 使用方式:

? ? 配置文件內容如下:

? ? 配置文件內容讀取,示例如下:

? ? ?github.com/spf13/cast

? ? ?使用場景:獲取配置文件列表內容。

? ? ?開源代碼Star數:★858

? ? ?使用方式:

? ? ?配置文件內容如下:

? ? 配置文件內容讀取,示例如下:

? ? github.com/LindsayBradford/go-dbf/godbf

? ? 使用場景:dbf文件內容解析。

??? 開源代碼Star數:★50

??? 使用方式:

? ? dbf文件內容解析,示例如下:

3、信息通信

github.com/golang/protobuf/proto

使用場景:protobuf支持的補充包。

開源代碼Star數:★6.3K

使用方式:通過protoc-gen-go文件指令進行proto文件編譯生成的go文件內部使用

protobuf結構解析,示例如下:

github.com/dgrijalva/jwt-go

使用場景:進行token生成及管理。

開源代碼Star數:★7.2K

使用方式:

token管理,示例如下:

github.com/gorilla/websocket

使用場景:創建websocket鏈接。

開源代碼Star數:★11.3K

使用方式:

創建websocket鏈接,示例如下:

4、數據庫操作

github.com/mattn/go-sqlite3

使用場景:xorm推薦的sqlite數據庫driver包。

開源代碼Star數:★3.9K

使用方式:

初始化數據庫,示例如下:

github.com/mattn/go-oci8

使用場景:xorm推薦的oracle數據庫driver包。

開源代碼Star數:★3.9K

使用方式:

初始化數據庫,示例如下:

github.com/go-sql-driver/mysql

使用場景:xorm推薦的mysql數據庫driver包。

開源代碼Star數:★9.3K

使用方式:

初始化數據庫,示例如下:

5、基礎框架包

除了以上提到的Go語言第三方包之外,還有一些比較常用的基礎框架包,比如:

github.com/gin-gonic(?高性能的web 框架)

github.com/go-xorm(gin web框架推薦使用的ORM數據庫中間件)

google.golang.org/grpc(grpc協議通信)

由于應用比較廣泛,范例也比較多,此處不再冗述。

03

總結

?開源包的引入在一定程度上解決了日常開發的方案需求,但是加入開源包的使用也對項目開發帶來了一定的風險。在對開源包進行使用之前,一定要對開源包的功能、版本以及使用評價有一定的了解。

●? 可通過開源網站的訪問量、星級標識及更新時間進行質量評估,翻看更新記錄及反饋查看使用情況。

●? 可通過GoModule管理方案進行版本管理,并跟蹤最新版本更新情況。

●? 可通過開源包中的test文件查看使用方式,查看內部邏輯,對于代碼結構設計可以深入研究了解,必要的時候可按照實際情況進行維護。

在對開源包方案進行選型的時候,要對內部的實現邏輯進行充分的了解和研究,防止增加項目的不確定風險。引入開源包之后需要定時去關注版本變化,監控是否發現或解決了某些嚴重缺陷,或者升級優化了某些功能。最終確保做到可使用可維護,能夠不留后患的解決問題。

總結

以上是生活随笔為你收集整理的go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。