Skip to content

Beego vs Gin的差异

MVC

  • Beego 支持 MVC
  • Gin 不支持完整的 MVC

Beego MVC

  • Beego是典型的MVC框架
  • M:Model,即Beego ORM,对象关系映射,以及对象的持久化
    • 特性
      1. 支持Go的所有类型存储
      2. 更简单的CURD风格
      3. 完整实现健壮稳定的ORM
    • 支持的数据库
      1. MySQL
      2. PostgreSQL
      3. Sqlite3
      4. 等等
  • V:View,体现为模版,Beego通过处理模版和渲染模版展示视图
    • 特性
      1. 静态文件处理
      2. 模版处理
      3. 模版分页处理
  • C:Controller,体现为各种功能
    • 特性
      1. 路由功能
      2. 控制器函数
      3. CSRF(Cross-Site request forgery)过滤器
      4. Session
      5. 错误处理 & 日志处理

Gin不支持完整的MVC

  • 支持的MVC有
    1. HTML渲染和模版
    2. 静态文件服务
    3. 路由
    4. ...

路由

  • Beego支持正则路由
  • Gin不支持正则路由

Session

  • Beego支持Session
  • Gin不支持Session,需要安装另外的包
    • github.com/astaxie/session

适用场景

Beego在业务方面较Gin支持的更多

  1. 在业务更加复杂的项目中,适用Beego
  2. 在需要快速开发的项目中,适用Beego
  3. 在1.0项目中,适用Beego

Gin在性能方面较Beego更好

  1. 当某个接口的性能遭到较大挑战的时候,考虑使用Gin重写接口
  2. 如果项目的规模不大,业务相对简单,适用Gin