[2024 年] 有哪些大家觉得好用的 Go Web 框架/脚手架?
在仅考虑 HTTP API 开发的前提下,大家有什么推荐的 Golang Web 框架或脚手架吗?
如果不使用框架/脚手架自己组合的话,常用组件大家是如何选型的呢?
www.goravel.dev/
没一个好用的,就算做好了心理建设接受了有些残疾的脚手架,后面还得去接受残疾的 ORM ,我觉得人生苦短,不应该在这上面浪费时间,最后还是决定不用 golang 作为业务层了,只用来做一部分非常边缘且简单的服务。
echo
额,我正在搞一个,刚开始。
- 不写 tag 的 binding 和校验
- 自动的路由注册和导入(一点点代码生成,且不需要额外的命令)
自动的 api 文档生成
sql 层面确实很难抽象,我还在想怎么做。
我不用 orm ,只用 db/sql
极简脚手架: github.com/elliotxx/go-web-template
http: github.com/labstack/echo
orm: github.com/ent/ent
validate: github.com/Oudwins/zog
error: github.com/joomcode/errorx用 Go 做业务开发/后端 API ,唯一的劣势就是没有一个统一的标准,没有好用的脚手架
Java 有 Spring Boot ,.NET 有 ASP.NET/Entity Framework ,Python 有 Django
Go 现在也进入主流开发视野了,但这方面还是挺残废的,写业务没有其他语言好用kratos 习惯了依赖注入后就挺不错的。还有就是未开源的 tRPC 生态非常好用。
kratos 和 go-zero 都支持了脚手架创建 http 和 grpc 的代码,但是太抽象了,定位问题和接口时要跳转很多次才能看到重点....我现在还是再用 gin+wire
在 go 里写 DI ,理由是什么...
go 里面加 Wire 太恶心了。。。
蹲一个答案,主要是 orm 这块
中小型公司没必要用什么 DI, 另外 DI 这种东西说实话就是为了控制人的,好让你们成为像 Java 那样的 curd boy ,
DI 的确也有好处,项目模块化更明显,剥离出业务逻辑,使得分工更明确。
不过我想说这种脚手架真的没必要学,因为你到一个自研实力还不错的公司,这种东西都会有核心成员研发的,然后让其他人成为工具人,哈哈。
几个 web 框架比如 gin, echo, beego 要会点,其他的都可以自己造的。
go-zero 重度用户
楼上 n 多人还在纠结 orm ,真的大可不必——gpt 类出来就是节省这些方面的时间的
可以自动生成 http/grpc 框架代码,若喜欢一样可以生成 model 代码。这就够了
GoFiber + Ent 吧
DI 是什么? dependency injection ?
如果是很大型的项目确实有点头疼,一般的 web 应用搞个 httprouter 都行,又不是非要什么 spring 一样的东西
不写 tag 的 binding 和校验听起来很有趣,请问是通过什么方式做呢
是的, 这方面 go 有好几个, 一些业务团队会把 DI 用到各个 web 框架上并组成自己的脚手架,
常见的 DI 有 google/wire(代码生成), uber-go/dig (反射)
紫薇,答应我,不要为两抽象而抽象,好吗?
gin+xorm
pocketbase.io/
难受,java 转的 go 。感觉 go 是一个项目一个规范
(感谢投稿人 @思禽饮霜 ) 这里主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式…
假如告诉 100 年前的人如今人人都有能远隔万里就能面对面聊天的手机电脑,他们恐怕只会想到例如驿站被替代,邮差被替代之类的吧,就好像很多人觉得 AI 来了程序员就要失业了,但是…
例如正在复制文件的这个复字,每次看到的时候都忍不住想吐槽,怎么会这样啊。按理说这个问题应该早早就有人提出并解决了吧。 日本字,要设置字符集 这个深有同感,不仅仅是这种不等宽…