Navigation

    西南IT社区
    • Register
    • Login
    • Search
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 工作机会
    • 活动
    • 项目

    前后端项目结构规范

    极客生涯
    api 层 前后端项目结构规范
    1
    1
    36
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • kaichu497
      kaichu497 last edited by

        无规矩不成方圆,做前后端项目也需要有一些规范约束。目前前后端结构分为各个层:其中开放 API 层:这一层里所有的东西都可直接封装 Service 接口并且能够暴露成 RPC 接口;而且可以通过 Web 封装成 http接口,或者网关控制层等。

        终端显示层:这一层是各个端的模板渲染并执行显示的层。目前最主要是 velocity渲染、JS 渲染、JSP 渲染、或者是移动端展示等。

        Web 层:这一层主要是进行对访问控制的转发,各类基本参数校验,或者不复用的业务简单处理等。
        Service 层:这一层说针对于具体的业务逻辑服务层。

        Manager 层:这一层通用于业务处理层,它拥有如下三个特征:第一个特征是它对第三方平台封装的层,可以进行预处理返回结果,并且能够转化异常信息,以适配上层接口。第二个特征是对 于Service 层通用能力的下沉,例如作用于缓存方案、中间件通用处理。第三个特征是与 DAO 层进行交互,对多个 DAO 的组合进行复用。
      DAO 层:这一层是用来进行数据访问,并且能够与底层 的MySQL、Oracle、Hbase、OB 等进行数据交互。

        第三方服务:这一层主要的功能是与其它部门 RPC 服务接口,基础平台,并且实现与其它公司的 HTTP 接口,例如淘宝开放平台、支付宝付款服务、高德地图服务等。
        外部数据接口:这一层是为外部应用或者数据存储服务提供的接口,在实际中多见于数据迁移场景中。

      并且分层领域模型规约具有以下几点:
        DO(Data Object)对象:此对象是与数据库表结构实现一一对应,并且通过 DAO 层向上传输数据源对象。

        DTO(Data Transfer Object):它是一个数据传输对象,是一个能够支持Service 或 Manager 向外传输的对象。

        BO(Business Object):是一个业务对象,可以由 Service 层输出封装业务逻辑的对象。

        Query:是一个数据查询对象,各层都用于接收上层的查询请求。但需要注意的是,当超过 2 个参数的查询封装时,要禁止使用 Map 类来传输。

        VO(View Object):是一个显示层的对象,通常是 由Web 向模板渲染引擎层进行传输的对象。
      7a4dbc10-8d69-495b-a041-4005179663f4-image.png

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      使用HTML构建办公软件 使用HTML构建办公软件 使用HTML构建办公软件
      光
      A
      庆
      小
      U
      Y
      L
      I
      Z
      I
      Y
      C
      Z
      E
      Y
      U
      I
      A
      Z
      Y
      Y
      罗
      R
      大

      西南地区IT社群(QQ)
      云南
      【昆明网页设计交流吧】243627302
      【昆明nodejs交流吧】 243626749
      【VUE】838405306
      【云南程序员总群】343606807
      【昆明UI设计】104031254
      【云南软件外包】15547313
      贵州
      【PHP/java源码/站长交流群】55692114
      四川
      【成都Java/JavaWeb交流】86669225
      【vaScript+PHP+MySql】116270060
      【UI设计/设计交流学习群】135794928
      重庆
      【诺基亚 JAVA游戏博物馆】 559479780
      【PHP,Java,Python,C++接单】 442103442
      西藏
      社群
      昆明网页设计交流吧
      友情链接
      • Funtask
      • Funtask 社区
      • SUWIS
      ©2019-2021 滇ICP备20006698号