Go使用起来简单、效率高、编码规范、执行性能高,所以被很多人偏爱,导致很多公司也开始转向Go。今天就给大家找了几款使用Go语言编写的项目,帮助你更加高效的开发。


1、go-zero——一个集成了各种工程实践的Web和rpc的框架

go-zero是一个集成了各种工程实践的Web和rpc框架,通过弹性设计确保了高并发服务端的稳定性。其主要优势有:

  • 内置链接超时控制、并发控制、速率限制、自适应断路器、自适应减载等;
  • 简单的API语法,一个命令可生成不同的语言;
  • 自动验证客户端的请求参数;
  • 内置了大量的微服务管理和并发工具包。


推荐原因:之前一直用的都是go-micro,版本有些混乱,并且后来更新的版本之间高度不兼容。一次逛论坛的时候看到有人讨论go-zero,在好奇心的驱使下就去查看了文档,然后试用了一下,结果一发不可收拾。只要定义好API,就可以一键生成代码,极大地提高了我的工作效率,让我能够有更多的时间可以专注在业务逻辑上面。


2、authelia——一个开源的认证系统

authelia是一个开源的认证系统,支持双因素认证和单点登录(SSO)。



推荐原因:authelia可以在认证这一环节上有效防止外界对系统的恶意入侵,在一定程度上保证了系统的安全性。同时也能够解决企业因业务整合而出现用户需要登录多个Server的问题,做到一次登录就可以访问所有相互信任的应用系统。


3、Packer——一款自动化构建镜像的工具

Packer是HashiCorp推出的一款镜像工具,旨在通过简易的方式自动化构建镜像。Packer可以从一个源配置为多个平台创建相同的镜像,降低运维和管理镜像的时间成本。



推荐原因:使用预先准备好的镜像有很多好处,但是很多人都不太愿意使用这种方式,原因是创建和管理镜像实在是太复杂了。Packer的出现解决了这些问题。Packer只是一个命令行工具,通过终端使用,也可以很简单的放到自动化工具里边,用来自动创建镜像。


4、pyroscope——一个开源的持续测试平台

pyroscope是一个开源的持续测试平台,其主要特点如下:

  • 可以存储来自多个应用程序的长达数年的分析数据;
  • 可以一次查看多年的数据,也可以查看特定的事件;
  • 低CPU开销;
  • 高效压缩,磁盘空间需求低;
  • 支持Go、Ruby和Python。


推荐原因:首先,pyroscope仅需一行代码就能够调试性能问题;其次,pyroscope使用自定义数据存储引擎,以更加低的成本存储数年的分析数据;最后,不管是几秒钟的数据还是几个月的数据,都能进行快速查询。


5、Learngo——Go语言的学习库

Learngo是Go语言的一个学习库,包含大量的示例、练习和测试。

推荐原因:初学者可以通过Learngo里面的demo快速掌握Go语言的知识点,同时在里面找到相关练习巩固所学内容。


6、PhotoPrism——照片管理工具

由Go和Google TensorFlow支持的照片管理工具,用于浏览、存储和共享照片集。利用最新技术自动标记和查找照片,例如根据地点、时间、颜色、标签、拍照设备等对照片进行标记、查找。

推荐原因:每次出游都会为家人朋友拍摄很多照片,然后在微信上一张一张的发送,每次只能发送九张,对方查看的时候还需要点击查看原图,长时间忘记保存就会被微信自动删除。有一次被同事安利了PhotoPrism,看了官方介绍很不错,试着部署到了服务器,上传照片、设置共享、建立索引,一气呵成。


7、GitHub CLI——GitHub的官方命令行工具

GitHub CLI(别名gh)是GitHub的官方命令行工具,提供了一种更简单、无缝的方法来使用Github。主要由三个部分组成:

  • Issues
  • Pull Requests
  • Repositories

通过GitHub CLI,开发者可以查看GitHub的issues和pull request的状态、搜索特定的issues或PR、创建或分支一个Repo、或者直接在命令行创建新的issues或PR。

推荐原因:多年来,GitHub作为全球最受欢迎的代码托管平台竟然一直没有提供官方的CLI工具,Hub则是此前一直最受欢迎的非官方GitHub命令行工具。
如今,官方版的 GitHub CLI 终于问世了,使用 GitHub CLI在命令行操作时,避免了上下文切换,可节省大量时间。Github CLI 更适用于那些需要处理很多 issues 和 PR 的开发者。