golang 框架 goframe 与 gin 的对比

更新日期: 2020-06-22 阅读次数: 14942 字数: 555 分类: golang

用了一段时间 gin,突然感觉有点简陋。想尝试一下其他 golang 框架,goframe 号称对标 laravel 和 django,这点是我需要的。看了一遍 goframe 的文档,确实非常像 laravel,连 http client 都内置了。从文档可以看出来,作者经验非常丰富,也很心细,学到了不少实战技巧。

goframe 吸引我的地方

  • 项目代码组织规范
  • 分组路由:后来发现这个功能 gin 有
  • i18n
  • orm
  • 热重启
  • 日志写入文件:原来 gin 也自带了。。。
  • 登陆注册
  • docker 的应用
  • 微信群的讨论质量相对其他群高很多,可能都是项目老手吧

我需要快速的 CRUD 能力,及快速构建 admin 后台的能力。goframe 看上去都是市面上的最优选择。

goframe 的缺点

但是,在犹豫的过程中。我列出了一些担忧的地方:

  • 功能模块在其他项目中,不一定能复用。例如,orm,日志,i18n。
  • 相对 gin 用户量偏少,很多资料查不到。例如,微信小程序获取 openid。
  • 主要维护者就一个,github 中很多 issue 没有答复,而且基本都是中文讨论

但是我又好像不需要 goframe

  • 使用 gorm 这种更通用的 orm 方案,以后在命令行程序中也能使用,经验复用
  • log 模块也是
  • goframe 的优势,和知识点,完全可以借鉴。但不一定用 goframe 的。
  • 内置的功能过多,我担心一旦封装出了问题,改起来麻烦

管理后台

独立的管理后台 vue element admin 更加通用。

现有 gin 系统迁移到 goframe 成本高

其实现有的 gin 系统,我正在运行的,基本满足我的需求。除了啰嗦的 sql 查询逻辑,不过看了半天 gorm,感觉完全可以解决现有的 sql 困扰。

结论

我还是继续使用 gin 吧,良好的可插拔特性,可以非常方便地引入三方功能。而这些三方模块的学习经验,还能应用到其他 console 程序中。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式

谈笑风生

John

官网有一篇关于框架的比较文章你可以参考:《Golang框架选型比较: goframe, beego, iris和gin》https://goframe.org/pages/viewpage.action?pageId=3673375