Go 项目如何解决依赖引入

前情提要

最近一周开始梳理开源项目的开发思路,一般开发项目的开发方式无非是两种,要么基于 API 开发,要么基于 ABI 项目开发,几乎所有的应用程序都是基于上述两种方式开发完成的,基于 go 项目的开发也是时间沉淀下来的感悟吧,所以做下总结;

小记: 好久不看电视剧了,不过”天才基本法“的短视频却是刷了很多,我感觉自己就是一个"运气 > 努力 > 天赋" 的崽崽,我的人生信条就是做一个有自知之明的傻子,决不做一个盲目自大的天才;

如何使用 GO 代理

众所周知的原因,国内的开发者如果不会网络代理,那么你的格局就太小了:

命令行配置:

go env -w GOPROXY=https://goproxy.cn,direct
# 或者
go env -w GOPROXY=https://goproxy.io,direct
go env -w GOPRIVATE=github.com

依赖管理的 2 种方式

go mod

使用场景:项目完全开放不存在私有代码仓库代码依赖(如果你的项目属于团体开发并且不涉及私有外部私有仓库依赖)

# 依赖初始化
go mod init
# 依赖校验
go mod tidy
# 依赖下载
go mod download

govendor

使用背景:如果项目涉及到一些私有性代码,并不完全开放,作为项目引用者,我们根本不可能获取所有私有仓库代码的权限,再加上一些网络原因,国内一些网民把 github 作为了伸冤的平台,导致了本来纯粹的技术性开发工具成为一种带有政治正确的留言板,除非机器也在国外,否则本地编译的成功率将会很低,所以此时就需要通过 govendor 进行编译了;

感受:国内的开发人员可能要比国外的开发人员在网络方面有较为深入的了解,所以国外开发人员在 github 开源的项目依赖管理一般使用 go mod,但是国内的开源项目为了兼顾国内的网络环境造成的局面,因此国内在 github 上的开源项目一般通过 govender 处理依赖关系;

# 下载 govendor 依赖管理工具
go get -u -v github.com/kardianos/govendor
# 初始化依赖模板
govendor init
# 将项目使用的依赖引入到 govendor 管理中
govendor add +external

私有项目配置

git config--global user.name 'xxxx'
git config --global user.email 'xxxx@qq.com'
go env -w GOPRIVATE=github.com
git config --global credential.helper store
git config --global credential.helper 'cache --timeout=3600'
git config --global url."https://$GitUser:$GitToken@github.com".insteadof "https://github.com"

说明:往往不是所有项目都需要开源的,因此上述方式就是通过配置私有仓库认证信息的方式保证项目资源可以进行正常有序的开发;

总结

通过项目开发,解决网络问题的种种,很多时候都受到国家网络封控带来的繁琐问题,怎么讲呢,通过信息论我们可以知道,现在网络上充斥的信息越来越多,我们获取信息的途径越来越多,这种信息爆炸带来的可不全是正面影响,所以就会产生很多细分的网络搜索领域,可是我们还是需要花时间进行筛选和甄别;

posted @ 2022-07-30 16:27  流雨声  阅读(416)  评论(0)    收藏  举报