由于工作需要,这些年来也接触了不少的开发框架,Golang的开发框架比较多,不过基本都是Web"框架"为主。这里稍微打了个引号,因为大部分"框架"从设计和功能定位上来讲,充其量都只能算是一个组件,需要项目使用的话得自己四处再去找找其他的组件,或者自己造轮子。如果用于Web开发,这些"框架"的Web开发能力均已完备,无太大差别,且均是自标准库net/http.Server的二次封装。由于框架众多,这里笔者只选择了几个曾做过技术选型评估、较为熟悉,且目前比较流行和典型的Golang"框架",从适用于业务项目开发框架的角度,做一个简单的横向比较,以便大家在项目框架选型时做个参考。
评估指标
由于微信对表格支持得不太好,因此这里通过截图的形式分享给大家。原本表格中带有相关的链接也发不出来,想了解详情的朋友请点击文章末尾的“阅读原文”。
Golang框架选型比较: goframe, beego, iris和gin 评估指标1
Golang框架选型比较: goframe, beego, iris和gin 评估指标2
横向比较
- 以下部分对比参数涉及评分的部分,满分总共按照10分为标准。
- 如果标记为"-"的部分,表示不支持或者需要引入第三方插件支持。
- 以下特性如果官网提供文档则直接提供文档地址,找不到文档但是笔者知道有就会简单标注。
由于微信对表格支持得不太好,因此这里通过截图的形式分享给大家。原本表格中带有相关的链接也发不出来,想了解详情的朋友请点击文章末尾的“阅读原文”。
Golang框架选型比较: goframe, beego, iris和gin 横向比较1
Golang框架选型比较: goframe, beego, iris和gin 横向比较2
Golang框架选型比较: goframe, beego, iris和gin 横向比较3
综合选择
经过一些比较以及内部团队的交流,目前公司主要选择goframe作为项目主体框架。原因很简单,只有它满足了我们项目对于框架的基本要求。并且goframe的中文文档做得很棒,源码适合学习,团队容易快速上手。还有一个重要原因,我们的团队大部分都是PHP转Go,使用goframe写了几个demo就倍感亲切,容易在PHP团队中快速推广Golang技术。此外,由于框架是模块化设计,我们也可以按需引用,个别模块我们可以替换为公司自研模块。
来源:
https://goframe.org/pages/viewpage.action?pageId=3673375