问答

系统项目设计

作者:admin 2021-06-23 我要评论

需要开发一个系统A,A系统所需要的数据比较庞杂,需要从B,C,D,E系统分别获取不同的数据组装成自己需要的格式,在使用接口的情况下,BCDE系统的更新,或对接口...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

需要开发一个系统A,A系统所需要的数据比较庞杂,需要从B,C,D,E系统分别获取不同的数据组装成自己需要的格式,在使用接口的情况下,BCDE系统的更新,或对接口的修改会导致A系统可用性极差,针对这种场景,A系统如何设计?

###

这个问题应该更多改为BCDE应该如何设计. BCDE作为服务者, 应该更多考虑如何让消费者更方便地使用, 而不是让消费者来为服务者的随意设计变更.

BCDE需要做好:

  • 在设计API的时候就尽量考虑好接口签名, 尽量避免以后频繁变动.
  • 接口传输数据的对象DTO要单独设计, 而不是要直接使用持久层的实体类.
  • 接口实现变动的时候, 尽量要向后兼容.
  • 如果对接口改动较大, 为了向后兼容, 会让代码可读性和可维护性变差, 那么新增一个接口.
  • 版本化. 如果大量接口或者整个业务逻辑变动极大, 那么新开类似 v2 这样的版本号.
    版本化的常见方式有:

    • 虚拟路径: api.domain.com/v1, api.domain.com/v2, ...
    • 域名: v1.api.domain.com, v2.api.domain.com, ...

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 系统项目设计

    系统项目设计

  • vue 两个组件互相嵌套报了组件未注册的

    vue 两个组件互相嵌套报了组件未注册的

  • vue 发布到阿里云oss如何配置

    vue 发布到阿里云oss如何配置

  • 空值条件运算符的奇异问题?

    空值条件运算符的奇异问题?

腾讯云代理商
海外云服务器