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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

Go語(yǔ)言是一種跨平臺(tái)(Mac OS、Windows、Linux 等)的靜態(tài)編譯型語(yǔ)言。擁有媲美C語(yǔ)言的強(qiáng)大性能,支持靜態(tài)類型安全,在普通計(jì)算機(jī)上能幾秒內(nèi)快速編譯一個(gè)大項(xiàng)目,開發(fā)效率跟動(dòng)態(tài)語(yǔ)言相差無幾。

Go語(yǔ)言在國(guó)內(nèi)擁有非常活躍的社區(qū),未來發(fā)展十分看好。當(dāng)前Go語(yǔ)言主要應(yīng)用于后端服務(wù)的開發(fā),未來隨著Go項(xiàng)目的完善,在系統(tǒng)、游戲、UI界面、AI、物聯(lián)網(wǎng)等領(lǐng)域,都將被廣泛使用。

當(dāng)我們?cè)陂_發(fā)實(shí)現(xiàn)中需要引入第三方包的解決方案的時(shí)候,就需要對(duì)于Go語(yǔ)言第三方包進(jìn)行下載,引入及版本管理。Go語(yǔ)言擁有很多優(yōu)秀的第三方包,在后端技術(shù)的解決方案上面,第三方包的使用可以實(shí)現(xiàn)相應(yīng)功能需求,而且便于安裝與引用。

01

管理及使用

? ? 1、第三方包的安裝

? ?(1)使用go get 安裝

在互聯(lián)網(wǎng)環(huán)境下,可以直接通過go get命令進(jìn)行第三方包的安裝。

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

需要注意的是,執(zhí)行g(shù)o get 命令需要先安裝git命令,并配置好git全局變量。

(2)使用源碼包安裝

?由于國(guó)內(nèi)網(wǎng)絡(luò)問題,很多時(shí)候go get命令并不能安裝,所以就需要到github.com網(wǎng)站上面手動(dòng)下載源碼包,然后拷貝到相應(yīng)的工程目錄中進(jìn)行引用。

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

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

需要注意的是,GO 和Java 不同,所有import的包必須在%GOPATH路徑下,如果直接導(dǎo)入源碼路徑下的包,編譯會(huì)報(bào)錯(cuò)。因?yàn)镚O只會(huì)在$GOPATH 下找包的依賴,而不會(huì)在當(dāng)前工程下找。如果新加入的第三方包是與工程目錄脫離,則在使用或編譯之前需要將第三方包所在的目錄加入到$GOPATH中。

2、管理辦法

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

使用GoModule管理依賴后會(huì)在項(xiàng)目根目錄下生成兩個(gè)文件go.mod和go.sum。

(1)變量設(shè)置

要啟用GoModule支持首先要設(shè)置環(huán)境變量GO111MODULE,通過它可以開啟或關(guān)閉模塊支持,它有三個(gè)可選值:off、on、auto,默認(rèn)值是auto。

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

?因?yàn)樾枰ヂ?lián)網(wǎng)環(huán)境進(jìn)行管理,在國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下,部分第三方包無法正常下載,所以建議設(shè)置代理參數(shù)GOPROXY,推薦設(shè)置為https://goproxy.cn。

?(2)常用命令

? ?初始化相關(guān)的命令如下:

通過go mod init命令初始化當(dāng)前文件夾, 創(chuàng)建go.mod文件。go.mod文件記錄了項(xiàng)目所有的依賴信息,文件內(nèi)容大致如下:

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

? ? (3)管理依賴包

? ? ?在項(xiàng)目中執(zhí)行g(shù)o get命令可以下載依賴包,并且還可以指定下載的版本。

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

我們?cè)诖a中刪除依賴代碼后,相關(guān)的依賴包并不會(huì)在go.mod文件中自動(dòng)移除。這種情況下我們可以使用go mod tidy命令更新go.mod中的依賴關(guān)系。

如果需要對(duì)一個(gè)已經(jīng)存在的項(xiàng)目啟用GoModule,可以按照以下步驟操作:

3、引用方式

在應(yīng)用程序中直接import即可。

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

02

介紹與應(yīng)用

下面介紹幾類常用的第三方包的使用場(chǎng)景及應(yīng)用示例。

1、數(shù)據(jù)加密

github.com/ZZMarquis/gm

使用場(chǎng)景:實(shí)現(xiàn)國(guó)密SM2/SM3/SM4算法;實(shí)現(xiàn)SM2 X509v3證書簽發(fā)和解析。

?開源代碼Star數(shù):★96

?使用方式:

?國(guó)密sm3加密實(shí)現(xiàn),示例如下:

國(guó)密sm4加密實(shí)現(xiàn),示例如下:

? ? ?golang.org/x/crypto

? ? 使用場(chǎng)景:crypto密碼學(xué)的補(bǔ)充包。Pbkdf2非對(duì)稱算法的go實(shí)現(xiàn)。

??? 開源代碼Star數(shù):★1.7K

??? 使用方式:

? ? Pbkdf2非對(duì)稱算法,示例如下:

? ? 2、文件讀取

? ? github.com/spf13/viper

? ? 使用場(chǎng)景:獲取配置文件內(nèi)容。

??? 開源代碼Star數(shù):★11.4K

??? 使用方式:

? ? 配置文件內(nèi)容如下:

? ? 配置文件內(nèi)容讀取,示例如下:

? ? ?github.com/spf13/cast

? ? ?使用場(chǎng)景:獲取配置文件列表內(nèi)容。

? ? ?開源代碼Star數(shù):★858

? ? ?使用方式:

? ? ?配置文件內(nèi)容如下:

? ? 配置文件內(nèi)容讀取,示例如下:

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

? ? 使用場(chǎng)景:dbf文件內(nèi)容解析。

??? 開源代碼Star數(shù):★50

??? 使用方式:

? ? dbf文件內(nèi)容解析,示例如下:

3、信息通信

github.com/golang/protobuf/proto

使用場(chǎng)景:protobuf支持的補(bǔ)充包。

開源代碼Star數(shù):★6.3K

使用方式:通過protoc-gen-go文件指令進(jìn)行proto文件編譯生成的go文件內(nèi)部使用

protobuf結(jié)構(gòu)解析,示例如下:

github.com/dgrijalva/jwt-go

使用場(chǎng)景:進(jìn)行token生成及管理。

開源代碼Star數(shù):★7.2K

使用方式:

token管理,示例如下:

github.com/gorilla/websocket

使用場(chǎng)景:創(chuàng)建websocket鏈接。

開源代碼Star數(shù):★11.3K

使用方式:

創(chuàng)建websocket鏈接,示例如下:

4、數(shù)據(jù)庫(kù)操作

github.com/mattn/go-sqlite3

使用場(chǎng)景:xorm推薦的sqlite數(shù)據(jù)庫(kù)driver包。

開源代碼Star數(shù):★3.9K

使用方式:

初始化數(shù)據(jù)庫(kù),示例如下:

github.com/mattn/go-oci8

使用場(chǎng)景:xorm推薦的oracle數(shù)據(jù)庫(kù)driver包。

開源代碼Star數(shù):★3.9K

使用方式:

初始化數(shù)據(jù)庫(kù),示例如下:

github.com/go-sql-driver/mysql

使用場(chǎng)景:xorm推薦的mysql數(shù)據(jù)庫(kù)driver包。

開源代碼Star數(shù):★9.3K

使用方式:

初始化數(shù)據(jù)庫(kù),示例如下:

5、基礎(chǔ)框架包

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

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

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

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

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

03

總結(jié)

?開源包的引入在一定程度上解決了日常開發(fā)的方案需求,但是加入開源包的使用也對(duì)項(xiàng)目開發(fā)帶來了一定的風(fēng)險(xiǎn)。在對(duì)開源包進(jìn)行使用之前,一定要對(duì)開源包的功能、版本以及使用評(píng)價(jià)有一定的了解。

●? 可通過開源網(wǎng)站的訪問量、星級(jí)標(biāo)識(shí)及更新時(shí)間進(jìn)行質(zhì)量評(píng)估,翻看更新記錄及反饋查看使用情況。

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

●? 可通過開源包中的test文件查看使用方式,查看內(nèi)部邏輯,對(duì)于代碼結(jié)構(gòu)設(shè)計(jì)可以深入研究了解,必要的時(shí)候可按照實(shí)際情況進(jìn)行維護(hù)。

在對(duì)開源包方案進(jìn)行選型的時(shí)候,要對(duì)內(nèi)部的實(shí)現(xiàn)邏輯進(jìn)行充分的了解和研究,防止增加項(xiàng)目的不確定風(fēng)險(xiǎn)。引入開源包之后需要定時(shí)去關(guān)注版本變化,監(jiān)控是否發(fā)現(xiàn)或解決了某些嚴(yán)重缺陷,或者升級(jí)優(yōu)化了某些功能。最終確保做到可使用可維護(hù),能夠不留后患的解決問題。

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。