基于 Go 的 Web 框架调研

Posted Yxh_blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 Go 的 Web 框架调研相关的知识,希望对你有一定的参考价值。

基于 Go 的 Web 框架调研

概述

调研总体目标

找出适合企业应用后台研发的 Go Web 框架

调研考察方向

  • 项目完善程度:

    • 功能完善: 路由, 模板, 插件/扩展, ORM, 命令行工具, 日志, 国际化支持, 测试集成功能
    • 扩展机制是否便捷, 扩展相关生态是否活跃(可选扩展模块)
    • 是否有独有的功能/特性
    • 文档是否完善 (判断标准: 是否与版本相关? 最近更新时间? 中文文档?)
    • 测试完善度 (测试覆盖率等)
  • 项目活跃度:

    • 近期发布版本: 是否半年内, 至少是一年内? 最近一年是否有 2+ 次正式版本?
    • 社区活跃度:
      • 代码贡献人数
      • issue 情况, 提问质量及解决情况
      • 中文社区, 或者中文使用者
  • 项目发展情况:

    • 人员支持稳定性: 主要贡献人是否有独立公司/稳定技术人员, 是否大公司支持
    • 是否有稳定/明确的版本计划和路线图
    • 总应用实例数-参考

Go Web 框架情况对比

候选框架

项目完善程度

功能对比
考察方向 功能/特性 Gin Echo Martini Go Buffalo Revel Beego GoFrame
功能 url路由配置 Yes Yes Yes Yes Yes Yes Yes
功能 cookie/session Yes Yes Yes(3rd) Yes Yes Yes Yes
功能 请求-绑定(data binding) Yes Yes Yes(3rd) Yes Yes Yes Yes
功能 请求-校验(validator) Yes Yes Yes(3rd) Yes Yes Yes Yes
功能 数据库-orm No No No Yes No Yes Yes
功能 日志组件 Yes Yes Yes(3rd) Yes Yes Yes Yes
功能 静态文件访问 Yes Yes Yes Yes Yes Yes Yes
功能 模板 Yes Yes Yes(3rd) Yes Yes Yes Yes
功能 测试组件 Yes Yes No Yes Yes No(有文档参考) Yes
功能 支持中间件 Yes Yes Yes Yes Yes Yes Yes
功能 组件自定义/替换? Yes Yes Yes Yes Yes Yes(部分) Yes(部分)
功能 命令行工具 No No No Yes Yes Yes Yes
功能 支持 HTTP2 Yes Yes No Yes No No No
功能 特色功能 / / / 热加载, 后台任务, 命令扩展-插件 热加载 自带监控工具 /
项目测试情况 覆盖率 98% 84% / / / / 72%
项目支持 是否有官方网站 Yes Yes No Yes Yes Yes Yes
项目支持 文档-是否有官方文档 Yes Yes Yes Yes Yes Yes Yes
项目支持 文档-是否有中文文档 Yes No Yes No No Yes Yes
项目支持 是否有专门社区 No Yes Yes No (stackoverflow) No Yes No
项目支持 是否有官方群、聊天社区 gitter.im Twitter/gitter.im No slack gitter.im 多种 Yes(QQ,微信,Github Issue)
项目支持 是否有中文社区 No No No No No Yes No
项目许可 许可协议类型 MIT MIT MIT MIT MIT Apache 2.0 MIT
项目活跃度 最近版本 v1.4.0 (2019-05-08) v4.1.11 (2019-10-07) v1.0 (2014-05-20) v0.15.1 (2019-11-21) v0.21.0(2018-10-30) v1.10.0(2018-07-21) v1.9.10(2019-10-24)
项目活跃度 近半年版本数(含非 release 版本) 0 6 0 19 0 0 17
项目活跃度 issue closed 1095 893 210 694 831 1894 231
项目活跃度 issue open 179 27 4 54 80 731 82
项目活跃度 fork 数目 3.8 k 1.4 k 1.1 k 411 1.4 k 4.6 k 287
项目活跃度 过去1月 merged pr 7 4 0 14 0 1 1
项目活跃度 过去1月 proposed pr 7 9 0 3 0 4 1
项目活跃度 过去1月 new issue 16 6 0 7 3 19 21
项目活跃度 过去1月 closed issue 20 14 0 12 1 3 10
项目发展情况 业界应用数 7.2k+ 2.9k+ / / / 有较多名企(华为/360/有道/微博/京东/腾讯 等) /
项目发展情况 是否有发展规划/Roadmap No No No No No No No
项目发展情况 人员构成-主力开发 4 2人 (其中1人是咨询) 1 (gin作者) 10 7 4 1
项目发展情况 contributor 数目 240 149 94 135 125 304 22
项目发展情况 是否有公司赞助/支持 No No No Yes (3) No No No

以上是关于基于 Go 的 Web 框架调研的主要内容,如果未能解决你的问题,请参考以下文章

Go组件学习——Web框架Gin

Go语言通用代码生成器

Go语言通用代码生成器

基于gin web框架搭建RESTful API服务

在Ubuntu上快速搭建基于Beego的RESTful API

短视频go研发框架实践