beego是典型的MVC框架
一:
1:M:Model 即Beego ORM 对象关系映射 以及对象的持久化
2:支持GO的所有类型存储
3:更简单的CRUD风格
4:完整实现健壮的ORM
支持数据库:
MYSQL PostgreSQL
V:
1:view 体现为模板。beego通过处理模板和渲染模板展现视图
2:静态文件处理
3:模板处理
4:模板分页处理
C:
1:Controller 体现为各种功能
2:路由功能
3:控制器函数 (M与V之间的桥梁)
4:CSRF 过滤器
5:Session
6:错误处理&日志功能
Beego 与gin全方位比较
1:MVC
2:路由&Session
3:性能
适用场景
商品详情页案例
Beego在业务方面较Gin支持的更多
在业务更加复杂的项目中,适用Beego
在需要快速开发的项目中,适用Beego
在1.0项目中,适用Beego
Gin在性能方面较Beego更好
当某个接口的性能遭到挑战时候,考虑使用Gin重写接口
如果项目的规模不大,业务相对简单,适用Gin
创造价值,获得竞争优势
正确的做性能优化:
确定性能目标,并保证这个目标是出于实际需要
建立性能环境,staging环境,并与线上环境隔离
性能环境和staging环境应该与线上环境类似架构
压测,并获得性能瓶颈的真实证据
持续改进
beego和gin的适用场景:
beego适合大型复杂的项目或者需要快速开发的项目中。gin适用于项目规模不大,业务简单,框架成为性能瓶颈的项目
编码演示
使用 Beego 框架实现
使用 Gin 框架实现
需求
能够根据商品 id 实现商品详情页的展示渲染
后台使用 go 语言项目
版本 1.0
对于性能暂时没有要求
Beego 在业务方面较 Gin 支持的更多
在业务更加复杂的项目中,适用 Beego
在需要快速开发的项目中,适用 Beego
在 1.0 项目中,适用 Beego
Gin 在性能方面较 Beego 更好
当某个接口的性能遭到较大挑战的时候,考虑使用 Gin 重写接口
如果项目的规模不大,业务相对简单,适用 Gin
确的做性能优化的姿势
确定性能目标,并保证这个目标是出于实际需要
建立性能环境、staging 环境,并与线上环境隔离
性能环境和 staging 环境应该与上环境类似架构
压测,并获得性能瓶颈的真实证据
持续改进
Beego 的性能一定比 Gin 差?
影响访问速度的因素有很多,例如系统中间层和数据层的耦合情况,数据层本身的能力,服务器所在机房的网络拓扑结构,负载均衡的配置情况等等。
DOMContentLoaded | Load
性能
从问正确的向题开始。。。
“高性能本身到底是不是我们的目标?
我们的目标是什么?
创造价值,获得竞争优势。
Beego Session 功能对后端引擎的支持:
<Memory>
File
MYSQL
Redis
Beego vs Gin
Beego 支持 Session
Gin 不支持 Session,需要安装另外的包
github.com/astaxie/session
Session
会话
面向连接&状态保持
Beego
RESTFUL Controller 路由
GET 请求调用 GET 方法,POST 请求调用 POST 方法
编码演示
路由功能!
Gin 不支持 MVC
需要开发者自己实现 MVC
特性
HTML 渲染和模板
静态文件服务
路由
。。。
理解执行流程
Beego 是典型的 MVC 框架
根据 Beego 手册的执行逻辑,理解行流程
Beego 是典型的 MVC 框架
C:Controller,体现为各种功能
特性
路由功能
控制器函数
CSRF (Cross-Site request forgery)过滤器
Session
错误处理&日志功能
Beegoi 是典型的 MVC 框架
V:View,体现为模板,Beego 通过处理模板和渲染模板展现视图
特性
静态文件处理
模板处理
模板分页处理
MVC
Beego 是典型的 MVC 框架
M: Model,即 Beego ORM,对象关系映射,以及对象的持久化
特性
支持 Go 的所有类型存储
更筒单的 CRUD 风格
完整实现健壮稳定的 ORM
支持的数据库
MYSQL、Postgresql、Sqlite3
MVC
VS
适合人群
有 Go 语言基础的程序员
对 Beego 框架、Gin 框架有了解的程序员
学习目标
理解 Beego 框架和 Gin 框架的不同点
理解如何针对不同场景适用不同框架
大部分人并不是天生有选择恐惧症,也不是天生的杠精,在我看来所有关于选择的迷惑或者争吵,大都因为
没有设定清晰的标准
标准不唯一
标准之间没有优先级或者权重
原则二
如果真的有一种语言或者框架很牛逼,那么荣耀或者赞誉也应该属于创造它的人,与使用者没有半毛钱关系;使用者的荣耀应该来自:针对恰当的需求使用恰当的语言或者框架,并且做到按时交付以及高质量。
程序员的自我修养。。
原则一:
一切语言、技术或者框架,本质都是工具,工具的价值在于为使用者提供争优势。
课程介绍
Beego 和 Gin 全方位比较
MVC
路由 & Session
性能
适用场景
商品详情页案例