复杂架构设计如何落地执行

主旨

企业架构
架构思维
组件建模
运营建模

功能性架构设计

  1. 关键认知:在个人视角里,整个世界都可以按照确定性内容和不确定性内容做简单区
    分;

  2. 架构将其抽象为元素和关系,元素对应着确定性内容的处理,是看待这个世界的稳定视
    角;关系对应着不确定性内容的处理,是看待这个世界的响应视角;

  3. 人类的理解能力有限。包含内容过多的元素,会导致理解困难,需要将其拆分;

  4. 同理,将元素归类的时候,也不能贪多,不然会导致理解困难。优秀的架构师,会将合
    理数量的元素进行归类,归类后的整体一般被称作 component 或 module,也可以
    直译为“组件”。比如,我们永远以“元素数量为 10 ”作为一个衡量点,只要一个组
    件包含的元素 / 职责超过 10 个,就要进行拆分;

  5. 元素归类一般采用 “V” 字型分析法,即流程分解为功能,功能聚合为组件;

  6. 如果组件明确了,意味着职责就建设好了,架构的元素(element)建设问题就解决
    了。组件对外暴露的能力,我们统一称之为服务;

  7. 那么,架构的关系(relationship)建设问题该如何解决呢?稳定的关系,用来表达确定
    性的交互,使用 SOA 架构,做好服务调用就可以;不稳定的关系,用来表达不确定性
    的交互,使用 EDA 架构;

  8. 在每一个新需求到来时,尤其是大版本的更迭,架构师需要介入产品经理和程序员的沟
    通中,判断新需求是否大幅增加了某些组件的复杂度,并决定是否调整组件职责,或对
    现有组件进行拆分。所以,从实际的业务发展来看,组件的数量是逐步增长的,如果一
    开始就很多,基本属于过度设计;如果业务复杂度已经翻倍了,组件数量却没变,基本
    属于缺乏设计。

posted @ 2021-10-27 17:36  liuhuayiye  阅读(60)  评论(0编辑  收藏  举报