架构设计的复杂度模型:
质量复杂度 高性能、高可用、成本、安全等质量属性的要求。
业务复杂度 业务固有的复杂度,难以理解,难以扩展。业务数量多、流程长,相互关系复杂。
业务复杂度与质量复杂度互不影响。
可扩展定义
可扩展 可理解、可复用。系统适应变化的能力
可伸缩 可以通过添加资源来提升性能的能力
架构可扩展 可理解问题 进行拆分 微服务、分层
应用可扩展 可理解-拆分(包、模块) 可复用-封装(微内核、规则引擎、设计模式)
代码可扩展
鸡蛋篮子理论第一法则--拆分法则:如果鸡蛋在一个篮子里数不清,就分散到多个篮子里再数。
拆分 拆分粒度约束拆分形态
拆分形态 服务 模块 插件 包
拆分粒度 内部复杂度 外部复杂度
拆分粒度:
平衡原则:内部复杂度与外部复杂度反向关联,处理时需要平衡。
先粗后细:如果无法把握,先进行粗粒度拆分,如果存在问题则再进行拆分。
封装复杂度模型
预测变化 原则1、只预测2年内的变化 原则2 三次法则-没有把握不要预测,需要时再重构。
封装变化 微内核、规则引擎、设计模式、抽象层
预测变化 决定 封装变化
标签:封装,复杂度,扩展,粒度,拆分,设计,架构,变化 From: https://www.cnblogs.com/windghost/p/16754001.html