美文网首页
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