美文网首页
Beego Architecture

Beego Architecture

作者: JunChow520 | 来源:发表于2020-12-26 02:01 被阅读0次

Beego框架起始于2012年由中国程序员谢孟军(asta谢)开发,使用Go语言开发一个高效率的Web应用开发框架。

Beego是一个快速开发Go应用的HTTP框架,可用于快速开发Web、API、后端服务等各种应用。其设计灵感来自于Python和Rails等框架,借鉴了Python的Tornado和Flask框架,以及Ruby的Sinatra框架。又结合Go语言本身的一些特性,比如interface接口、struct结构体继承等,而设计的一个框架。

设计思路

  • 模块化
  • 分离
  • 组合
  • 少即是多
  • 设计和引擎分离

Beego的原版来自Python的Tornado,Tornado支持异步性能较好。对于请求的设计采用一个路径请求到一个处理器(handle),比如对于GET、POST请求对应处理器中的get()方法和post()方法。以此来应对RESTful。简单类似或,一旦请求进入则会通过路由进行解析,并动态注册为结构体,结构体根据不同的方法调用不同的HTTP方法。当方法调用完毕之后就开始渲染并生成。

Beego设计参照了UNIX的思想,首先是模块化,其次是分离。通过接口和实现分离来实现扩展。

模块化:Write simple parts connected by clean interfaces

分离:Separate policy from mechanism; Separate interfaces from eneines.

组合:Design programs to be cnnected other program

少即是多 Less is More

总体架构

Beego的设计理念主要参考UNIX的设计理念:模块化、分离、组合,简单来说就是乐高的概念。

https://blog.csdn.net/arvin_kai/article/details/52883253

整体设计架构

模块化编程是Beego架构的设计核心之一,Beego是基于八大独立的模块之上高度解耦的框架,各个模块彼此松散关系。

Beego八大基础模块

基础模块 描述
log 日志
ORM 对象关系模型
context 上下文
cache 缓存
httplib HTTP类库
session 会话处理
toolbox 工具箱

Beego框架设计之初采取功能的模块化,即使用户不适用Beego自身的HTTP逻辑,也依旧可以使用内置的独立模块。

执行逻辑

Beego使用了典型的MVC架构,基本八大内置的基础模块,模块之间的执行逻辑如下:

运行逻辑

目录结构

应用目录结构
目录 描述
conf 默认配置文件目录
controllers 控制器层
models 数据模型
routers 路由规则
static 静态资源
tests 测试
views 视图模板

相关文章

网友评论

      本文标题:Beego Architecture

      本文链接:https://www.haomeiwen.com/subject/gqswnktx.html