最近梳理了之前学习的架构设计相关的一些课程学习总结,将其整理成了一个大纲脑图,以每篇5分钟系列展现出来,希望对你有所帮助。
本篇,我们聚焦架构设计和架构拆分的原则。
理解这些原则,可以作为我们做设计和拆分的“道”。
架构设计的原则
(1)合适原则
合适优于业界领先
(2)简单原则
简单优于复杂
(3)演化原则
演化优于一步到位
架构即人性,设计一个符合企业当前情况,又可以演进、不好大喜功的架构,善莫大焉。
架构拆分的案例
(1)典型案例
某位研发工程师在重构一个负责交易流程的系统时,将其拆分成报价系统、促销系统,以及订单系统,而当时他们只有两个人负责交易系统的开发工作。
(2)问题来了
你们只有两个人负责这个交易系统,为什么还要做系统架构拆分?而且拆分之后会带来其他的复杂度,你是怎么考虑的?
(3)回答示例
-
从订单系统层面来看,由于交易流程中的订单系统相对来说业务稳定,不存在很多的迭代需求,如果耦合到整个交易系统中,在其他功能发布上线的时候会影响订单系统,比如订单中心的稳定性。基于这样的考虑,需要拆分出一个独立的子系统。
-
从促销系统层面来看,由于促销系统是交易流程中的非核心系统,出于保障交易流程稳定性的考虑,将促销系统单独拆分出来,在发生异常的时候能够让促销系统具有可降级的能力。
-
从报价系统层面来看,报价是业务交易流程中最为复杂和灵活的系统,出于专业和快速迭代的考虑,拆分出一个独立的报价系统,目的就是为了快速响应需求和变化。
-
从复杂度评估层面来看,系统拆分虽然可能会导致系统交互更加复杂,但在规范了API的格式定义和调用方式之后,系统的复杂度可以维持在可控的范围内。
(4)回答点评
-
立足于点:从原有系统中关于订单、促销和报价功能耦合在一起带来的实际问题出发
-
连接成线:从交易流程的角度做设计串联起三个系统的拆分逻辑是连接成线
-
扩散成面:从复杂度和成本考量的方向夯实了设计的原则
参考资料
李运华,《从0开始学架构》
刘海丰,《架构设计面试精讲》
潘新宇,《23讲搞定后台架构实战》
作者:周旭龙
出处:https://edisonchou.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
标签:架构设计,架构,复杂度,促销,系统,分钟,了解,拆分 From: https://www.cnblogs.com/edisonchou/p/architecture_design_learning_in_5mins_part4.html