假如再让你重新设计一个系统,你能想到之前一个系统所碰到的问题吗?

     系统包括下面几个端    服务端 、客户端、后台、前端 

     首先要考虑的问题是各个端的通信协议,以及接口标准规范,服务端的数据库字段定义规范,以及各种实体(vo、dto、pojo、entity)的定义规范,详情可以参考阿里出的那个规范。

其次是服务端必须每个层都写测试用例,服务端的参数需要有效验证,防止接口直接调用。重要的逻辑需要打印日志,发版本之后两天日志为最高级别,防止问题找不到,或者不能及时找到。

    接下来是整体的架构

        1、分层(关注点分离) 依赖倒置原则和测试驱动开发

                 展示层、控制层、服务层(业务层)、数据访问层,(牵扯到敏捷开发,以及后续的springboot的微服务,当服务达到一个高级别的时候。)

        2、事件驱动架构 分布式异步架构模式

                事件队列(Event Queue)、调停者(Mediator)、事件通道(Event Channel)和事件处理器(Event Processor)

                企业服务总线、队列或者集线器可以作为事件调停者

      3、 微内核架构 插件架构(plugin architecture)模式

             产品型系统

      4、微服务架构 替代soa

原文地址:https://www.cnblogs.com/chne/p/7808385.html