好有缘导航网

Go-清点-个优质开源的-7-名目 (清点工具有哪些规定)


文章编号:27435 / 分类:互联网资讯 / 更新时间:2024-10-01 12:01:03 / 浏览:

Golang 近几年开展迅速,曾经极速浸透进国际的各大厂。

逛逛GitHub之前清点过 Java 关系的实战名目。

本文针对 Go 言语,清点了 GitHub 和 Gitee 上优质的开源名目。

本期介绍开源名目目录:

1. 身份识别与访问治理系统

2. 基于 Go 的仿网络网盘名目

3. Go 言语低劣资源整顿

4. 读者介绍的 Golang 开发者

5. 流量录制回放工具

6. 数据治理平台

7. Go 学习库

01. 身份识别与访问治理系统

IAM (Identity and Access Management)是一个基于 Go 言语开发的身份识别与访问治理系统,用于对资源访问启动授权

这个名目用到了 Go 企业开发的大局部外围技艺点,可以作为学习 Go 言语积攒名目阅历的不错名目。

开源地址:基于 Go 的仿网络网盘名目

这个开源名目是一个基于 Go 言语成功的散布式云存储服务。

仿网络云,允许断点续传和秒传。

开源地址:Go 言语低劣资源整顿

这是一个资源汇总的 GitHub 名目,蕴含了存储、设计形式、算法、实战名目、学习资料等等的开源名目。

开源名目:读者介绍的 Golang 开发者

这是一位读者介绍的开发者,这位开发者开源了很多 Go 言语不错的小名目,假构想学习的可以去它的团体主页看看。

团体主页:流量录制回放工具

Sharingan 是一个基于 Golang 的流量录制回放工具,录制线上实在恳求流量启动回放测试,适宜名目重构、回归测试等。

开源地址:数据治理平台

GoAdmin 可以协助你的golang运行极速成功数据可视化,搭建一个数据治理平台。

10 分钟内做一个难看的治理后盾,开箱即用的 rbac 认证系统。

开源地址:Go 学习库

开源地址:历史介绍

逛逛 GitHub 每天介绍一个好玩幽默的开源名目。历史介绍的开源名目曾经收录到 GitHub 名目,欢迎 Star:

开源名目:?

介绍浏览

1. GitHub 上有什么好玩的名目?

学习golang(9) 初探:go path与go mod

Go清点个优质开源的7名目清点工具

go提供了2种包治理形式,一种是go path还有一种便是go mod

linux 经常使用 export可以设置环境变量,例如:export GO111MODULE=on

为什么须要包治理

在经常使用go环节中,不只须要经常使用系统提供的包,例如: fmt、net、log等,咱们还须要第三方包,例如: redis-go驱动/go-redis/redis/v8、mysql驱动/go-sql-driver/mysql ,如何极速有效的导入并且经常使用这些第三方包,这就是为什么须要包治理。

go root为什么须要go root

咱们在装置完go后,须要设置go root门路,当咱们经常使用go提供的系统库的时刻,咱们可以间接import即可,无需装置,咱们可以经过go env来检查go root设置,例如:

导入系统库案例

当咱们程序经常使用导入系统库,例如: fmt的时刻,其实会先到go root中启动寻觅,例如,如下程序

咱们import fmt 其实该库的相对门路为/usr/local/go/src/fmt/

由于咱们设置了go root,它会替咱们寻觅而已

go为了导入第三方库,给咱们提供了2个工具,区分为 go path和go mod。

咱们从如下例子来讲go path和go mod

go path和 go mod设置

引入本地依赖库

引入网络库

go pathgo path 设置

咱们也可以经过go env来取得,例如

咱们可以第三方插件搁置到go path目录下,而后援用即可

引入本地依赖

例如,咱们新建一个新文件

门路: /root/go/src//pdudo/

内容

咱们再主函数中援用该包函数Start

运转一下

若未找到包,则会报如下失误

报错意思为: 程序援用了该包,然而在go root和go path均未找到。

下载网络依赖

若咱们援用了网络库,例如: redis-go

咱们代码如下

在口头的时刻,会报错

揭示找不到/go-redis/redis/v8,咱们只要要经过go get即可启动下载

咱们经过检查gopath来看redis库

这个代表下载好了,甚至于你可以经过这个命令来下载该库cd .; git clone --/root/go/src//go-redis/redis

最终目标只要一个,那就是将库放在go path下即可。

缺陷

经常使用go get,如遇网络疑问,拉取环节较为复杂

自己编写的包,和网络上的第三方包,都搁置在go path中,容易形成凌乱,不繁难治理

假设程序中导入了多个第三方包,第三方包又嵌套了第三方包,在go get的时刻,往往会很艰巨。

经常使用go get,版本不可缺陷,为应答该疑问,往往须要设置多个目录

go mod

go在v1.11推出了go modules包治理工具,以应答go path产生的疑问。

go mod设置GO111MODULE

在go env中有个环境变量: GO111MODULE,该值来控制go mod,其参数值为

go不启用go modules配置,采取的是go path方法来寻包。

go启用go modules,若设置为on,则不会寻觅go path门路了

该值较为不凡,是由于要依据以后目录环境来选择能否经常使用go modules

若产生如下状况,则会经常使用go mod

-???名目目录不在`go?path`下-???以后或许上一级目录存在``文件GOPROXY

在一些网络较为不凡的环境下,咱们若没方法间接访问库地址,咱们可以经过代理去镜像拉取

该值有2个参数: goProxyUrl,[off,direct]

若为off: 示意不会回源,即: 当代理拉取不到数据的时刻,不会去源站镜像拉取。

若为direct: 示意会回源,当代理拉取不到的时刻,会去源站尝试拉取

GOPRIVATE

和下面go env 变量 GOPROXY出现反成果,这里设置的是,不走proxy的私有仓库或许名目。

设置相似于: GOPRIVATE=,/my/private

咱们测试设置如下

下载网络依赖库

咱们可以经常使用go mod init mod_name来创立一个go mod

其中mod_name可以不写,而后经常使用go mod tidy启动拉取资源

咱们运转下程序

如今报的是衔接不上redis, 而非找不到库了。

引入本地依赖库

经常使用go mod拉取网络库十分爽,然而引入团体库就比拟费事了

例如,咱们自己编写了一个flags代码

咱们想援用它,

咱们先创立go mod

留意哟,这里假设要调用flags库的函数,flags也须要创立go mod 才行

咱们则须要修正一下文件

修正如下

咱们编写主函数

咱们口头下代码

咱们发现,代码口头成功了。

含意

总结

不论是go path也好,还是go module也罢,找到自己适宜的才是最好的,额, 不过,如同后续go版本方案破除go path,也不知道是不是真的,不过go mod相比对go path而言的话,上手较慢,须要有一个学习环节,能力正确引入本地依赖库。


相关标签: 名目个优质开源的7清点Go

本文地址:http://www.hyyidc.com/article/27435.html

上一篇:什么是sis什么是四舍五入...
下一篇:网站后盾治理系统哪个好网站后盾治理工作总...

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="http://www.hyyidc.com/" target="_blank">好有缘导航网</a>