什么是项目的程序架构 项目架构怎么描述 | 您所在的位置:网站首页 › 文章框架怎么描述 › 什么是项目的程序架构 项目架构怎么描述 |
本文章写的项目规范以及架构都是我在公司所体会到的,目前该架构师已经去了蚂蚁金服.羡慕大佬; 1:项目架构介绍 1.1:公司采用小前端+大中台+后台的模式,来快速适应业务上的快速变化. 什么是中台? 我个人的理解为.将所有项目的共同业务分离开来,然后把共同的业务塞进同一个微服务中; 列如:一个公司有多个项目, 每个项目呢都会有会员模块. 订单模块.等相同的业务. 把所有项目的会员模块都由一个微服务来提供接口,订单模块由一个微服务提供接口.把这些微服务汇总起来呢,就是整个公司的中台.也就是整个系统的支撑核心; 什么是前端? 前端主要是指让用户能直观感受到的页面. 这个就是传统意义上的前后端分离.前端由专业人员去开发.专业的人做专业的事嘛.公司主要采用的前端技术为VUE; 什么是后台? 后台我的理解为:传统意义上项目只有前台和后台.传统的后台包含了(所有接口,服务,数据库,中间件.负载均衡这些) ,而新的架构中,则将业务架构分离为中台. 一些基础的服务分离为后台(redis,mq,nacos,mysql等等)来为中台提供强大的业务支撑; 下图为系统的架构图,目前我的理解是这样的. 前端->中台->后台: 原则上只能上层调用下层接口.调用的时候采用HTTP协议.如果有特殊情况,需要获取上层的接口,就采用异步的方式调用 前端调中台的时候 所有请求都通过网关. 由网关进行判断下一步调用哪个服务. 中台之间又分了很多个独立的项目比如商户模板,又分为商户service, 商户api. 这个就需要对外只提供商户api的接口.让商品api调用商户service. 中台之间一些基础性的微服务.比如 bascie,dependencies,swagger.这些业务模块通用的基础微服务调用的时候也要注意 目前我们公司采用.OpenFegin来进行接口之间的调用. 采用bascie微服务作为接受数据的实体类jar包. 采用fegin调用的数据都要引入basic包的类作为DTO 注意:项目中由于微服务众多,如果不注重规范.调用的时候.很容易会发生循坏依赖问题. 1.3模块内部的调用关系 传统意义上的调用: 通常是接口暴露在Controller层. Controller内进行页面跳转,访问控制的处理.然后注入Service.调用Service方法. Service内进行业务逻辑的处理,然后注入Dao. 调用Dao方法. Dao接口对应Mapper.xml文件 一一对应sql语句 我们项目的调用: 而我们项目在开发的时候,则是又添加了一层.DaoService层. 我们是接口暴露在Controller层. Controller内进行页面跳转,访问控制的处理.然后注入Service. 调用Service方法. Service内进行业务逻辑的处理,然后注入DaoService. 调用DaoService方法. DaoService里面实现与数据库有关的操作(比如把DTO对象转换成数据库Bean) ..然后注入Dao接口.调用Dao方法 Dao接口对应Mapper.xml文件 一一对应sql语句
以上都是个人的理解.如果有不对的地方,请多多指教.
|
CopyRight 2018-2019 实验室设备网 版权所有 |