V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  gvison  ›  全部回复第 1 页 / 共 1 页
回复总数  19
@zoharSoul 不需要依赖注入也可以在 解耦、测试性、灵活性、可扩展性 满足要求的
这个要问原作者的自己的考量了。

gorm 提供了大量的抽象层和自动化功能,内部使用了不少的反射操作,在处理复杂 SQL 或高并发场景时,性能不够好,在简单查询和标准 CRUD 操作上,grom 通常能够提供足够的性能了。

这个微服务框架默认使用的是 gorm ,也可以使用自己熟悉的 orm 替代 gorm 。
https://github.com/zhufuyi/sponge
集成 gin+gorm 的开发框架 https://github.com/zhufuyi/sponge ,生成代码功能非常强大,如果开发只有 CRUD api 服务,不需要编写任何 go 代码就可以编译并部署到 linux 服务器、docker 、k8s 上。sponge 提供了一站式项目开发(生成代码、开发、测试、api 文档、部署),大幅提高了开发效率和降低了开发难度。
开源的 gin 脚手架有不少,可以快速调研对比一下,自己有能力写脚手架了,其他 gin 脚手架肯定可以快速熟悉了解(大同小异),个人觉得调研对比结果就是最好的建议,这里 https://github.com/zhufuyi/sponge 的 gin 部分功能代码,有兴趣的话可以借鉴或参考一下。
通过 sql 反向生成 go struct 映射数据库代码会更简单,连接数据库后,指定表来生成对应 gorm 的 struct 代码,https://go-sponge.com/ui/web-model
68 天前
回复了 kdbtg91 创建的主题 Go 编程语言 Go 项目的调试、测试
现代负载测试工具 k6 https://github.com/grafana/k6
支持生成测试代码、性能压测代码、swagger 文档的开发框架 https://github.com/zhufuyi/sponge
@ninjashixuan 现在大模型还没智能到按要求生成类似脚手架可以一键生成完整的代码,以后可能会有。
根据 sql 逆向生成对应 gorm 的 model 、CRUD ,会更加的省事, 例如 https://go-sponge.com/ui/web-dao
@mocococ 觉得复杂可以尝试下在这里体验生成代码 https://go-sponge.com/ui/web-http 。浏览了下 goframe 的代码和文档,goframe 有的大部分功能 sponge 也是有的,开源的开发框架趋同化,个人感觉 goframe 主要更侧重 web 开发,在微服务方面没有微服务框架(go-zero 、kratos 等)成熟,个人更喜欢 kratos ,因此 sponge 参考了一些 kratos 。
使用工具连接数据库之后就可以生成 pb 和 gorm 两套对应的代码,示例 https://go-sponge.com/ui/micro-service
151 天前
回复了 afxcn 创建的主题 Go 编程语言 go restful api 脚手架
依赖 node 环境来生成 go 代码,把 go 的不需要依赖环境的优点变成了缺点,其实用 go 写的开源 restful api 脚手架有挺多的。
在简单的 restful api 、工具、更复杂的微服务项目方面,个人感觉用 go 还是可以兼顾到节省资源和开发效率的,开发效率方面用到了开发框架 sponge ,在项目层级上自动生成和合并代码,减少了大量原本需要手写的代码,只需编写业务逻辑代码。
199 天前
回复了 XdpCs 创建的主题 Go 编程语言 如何更好的打印日志
把请求经过的整条链路日志打印出来,通过 trace_id 或 request_id 把入参信息、返回信息、错误信息串联起来,通过 id 过滤可以查看整条请求链路日志信息,排查 bug 挺方便。可以参考这里封装的 gin 中间件 https://github.com/zhufuyi/sponge/blob/main/pkg/gin/middleware/logging.go
使用开发框架重写自己做过的项目,可以学习下一个高质量项目是如何快速高效实现的 https://github.com/zhufuyi/sponge
231 天前
回复了 uniy 创建的主题 Go 编程语言 难道 Go 就没有好用的工作审批流框架吗
https://github.com/wegoteam/weflow 它借鉴了 activiti 和钉钉的设计理念
233 天前
回复了 xhd2015 创建的主题 Go 编程语言 使用 xgo trace 来可视化程序堆栈
程序堆栈可视化,看起来挺不错。
@idblife #5 基于 gin 封装的脚手架 sponge ,集成了从生成代码到开发、测试、api 文档、部署功能,或许可以符合你的要求
239 天前
回复了 ducuducu 创建的主题 程序员 http 网关如何优雅的暴露内部 grpc 服务
在 grpc 服务中增加一个 http 服务对现有系统影响是最小的,也就是一个微服务中同时提供了 http 和 grpc 两种调用(不是 grpc-gateway 方式),共用一套业务逻辑,B 站开源的微服务框架 kratos 是支持 http 和 grpc 的,我猜 B 站应该是这样的方案。
@block0 有用户反馈说用在公司项目上,比平常开发节省了不少时间
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   863 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 21:12 · PVG 05:12 · LAX 13:12 · JFK 16:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.