My Github

5分钟了解系统架构设计(4)

最近梳理了之前学习的架构设计相关的一些课程学习总结,将其整理成了一个大纲脑图,以每篇5分钟系列展现出来,希望对你有所帮助。

本篇,我们聚焦架构设计和架构拆分的原则。

理解这些原则,可以作为我们做设计和拆分的“道”。

架构设计的原则

(1)合适原则

合适优于业界领先

(2)简单原则

简单优于复杂

(3)演化原则

演化优于一步到位

架构即人性,设计一个符合企业当前情况,又可以演进、不好大喜功的架构,善莫大焉。

架构拆分的案例

(1)典型案例

某位研发工程师在重构一个负责交易流程的系统时,将其拆分成报价系统、促销系统,以及订单系统,而当时他们只有两个人负责交易系统的开发工作。

(2)问题来了

你们只有两个人负责这个交易系统,为什么还要做系统架构拆分?而且拆分之后会带来其他的复杂度,你是怎么考虑的?

(3)回答示例

  • 从订单系统层面来看,由于交易流程中的订单系统相对来说业务稳定,不存在很多的迭代需求,如果耦合到整个交易系统中,在其他功能发布上线的时候会影响订单系统,比如订单中心的稳定性。基于这样的考虑,需要拆分出一个独立的子系统。

  • 从促销系统层面来看,由于促销系统是交易流程中的非核心系统,出于保障交易流程稳定性的考虑,将促销系统单独拆分出来,在发生异常的时候能够让促销系统具有可降级的能力。

  • 从报价系统层面来看,报价是业务交易流程中最为复杂和灵活的系统,出于专业和快速迭代的考虑,拆分出一个独立的报价系统,目的就是为了快速响应需求和变化。

  • 从复杂度评估层面来看,系统拆分虽然可能会导致系统交互更加复杂,但在规范了API的格式定义和调用方式之后,系统的复杂度可以维持在可控的范围内。

(4)回答点评

  • 立足于点:从原有系统中关于订单、促销和报价功能耦合在一起带来的实际问题出发

  • 连接成线:从交易流程的角度做设计串联起三个系统的拆分逻辑是连接成线

  • 扩散成面:从复杂度和成本考量的方向夯实了设计的原则

参考资料

李运华,《从0开始学架构》

刘海丰,《架构设计面试精讲》

潘新宇,《23讲搞定后台架构实战》

 

posted @ 2023-02-04 18:22  EdisonZhou  阅读(181)  评论(0编辑  收藏  举报