gin
-
star:74.6k
-
gin是最受开发者欢迎的 Web 框架,它有诸多的优点,性能高、轻量级和简洁的 API 设计,社区活跃度高,灵活、可扩展性强。当然了,最最主要的就是性能非常高,能够处理大量的并发请求。是web框架的不二之选。
-
使用体验:我们新的项目都是使用gin框架,优点很明显,高性能、轻量、灵活;缺点就是太灵活了,就缺少了很多模块,比如ORM模块、MySQL模块、Redis模块等,对初学者来说还是有一定门槛的,想直接拿着gin撸一个项目出来还是有一定难度。
gorm
-
star:35k
-
gorm是Go语言中最受欢迎的ORM(Object-Relational Mapping)框架,它提供了强大的功能和简洁的 API,让数据库操作变得更加简单和易维护,避免了手写SQL语句的麻烦。
-
使用体验:GO的orm使用的种类不多,只使用过gorm和beego的orm,使用感受上没有太大的区别。
beego
-
star:30.7k
-
Beego是一个开源的web框架,被广泛应用与Go语言的 web应用程序 的开发。它支持路由控制、配置管理、Session管理、日志、ORM等各种功能。它的核心设计是简单、易于学习和开发。
-
使用体验:beego是我们使用最多的框架,当时大多数同学都是从PHP转过来的,几乎没任何门槛,就是按照PHP的方式编写代码,只不过把语言换了一下,集成的模块比较多,配置文件解析、LOG、ORM、session等等,看它的文档很容易撸出一个新项目,初学者、跨语言的建议使用beego,感官上没有用 Go 语言的思维去设计框架,各种模块比较臃肿,性能上跟轻量型的框架还是有差距的。
cli
-
star:21.4k
-
cli提供了简单快速的构建命令行的功能。可以很容易的通过命令设定参数和配置执行业务逻辑。
-
使用体验:我们的crontab的定时脚本都是使用cli的命令行执行的,挺好用的。当然了也没使用过其他的命令行的类库。
zap
-
star:20.6k
-
zap是 uber 开源的 Go 高性能日志库,支持不同的日志级别,支持日志记录结构化,分配资源最小。
-
使用体验:高性能和灵活性兼具的日志服务,碰过的几乎所有的项目都是用 zap 记录日志,当然了,还是有一些门槛的。可供选择的好用的日志类库也不多。
mysql
-
star:14.1k
-
第三方的 MySQL 驱动,专为 Go 的 sql 标准库设计。它提供了对 MySQL 特性的支持,包括连接池、事务处理等,它的特点是高性能、安全性。
-
使用体验:这个感觉没啥可说的,底层的协议驱动,各种ORM的框架、拼SQL的写法,后面都是使用mysql驱动的。
redigo
-
star:9.7k
-
Redigo 是一个Go 语言 Redis 客户端库,它提供了一个简单的接口来执行 Redis 命令,它支持 Redis 的多种数据类型和操作,包括字符串、哈希、列表、集合和有序集合等。它也支持发布/订阅模式、事务、管道和连接池等功能。
-
使用体验:我们的项目使用Redis客户端都是redigo,可使用的Redis客户端就上面这两个,找一个顺眼的用就行了。
errors
-
star:8.1k
-
pkg/errors 是一个 Go 语言的错误处理包,它提供了一个用于错误处理的机制,旨在简化错误信息的创建和传播。这个包提供了一种构建错误的原因和上下文的方法,使得在调试和错误追踪时更加直观和方便。
-
使用体验:我们的每个项目错误处理都是使用errors,它的的优势是错误多次封装包裹和传寄,可以很方便的拿到错误的调用链和堆栈信息。
goconvey
-
star:8.1k
-
GoConvey 是一个用于 Go 程序 测试框架。它通过提供一种易于阅读和编写的测试风格,帮助开发者定义和执行测试用例。特别适合于编写复杂的测试场景,提高代码的可读性和可维护性。
-
使用体验:好用,本来需要输出打印测试结果,GoConvey 让测试成为项目的一部分,提高测试代码的可读性,所有人读代码一目了然。
gin
-
star:4.2k
-
gin是用于实时加载Go Web应用程序的程序。只需 gin 运行在应用程序的目录中,gin就是实时监测,检测到代码更改后,将自动重新编译代码,应用在下次收到HTTP请求时就是用的修改后台的代码。
-
使用体验:觉得热加载服务很有必要,这个也特别好用,不知道star为啥这么少,只要文件有修改,codegangsta/gin 就会自动编译然后执行,在代码编写和调试的阶段非常有用,极大的提高了效率。