如何设计可扩展的架构

架构设计的复杂度模型:

      质量复杂度  高性能、高可用、成本、安全等质量属性的要求。

      业务复杂度 业务固有的复杂度,难以理解,难以扩展。业务数量多、流程长,相互关系复杂。

      业务复杂度与质量复杂度互不影响。

可扩展定义

      可扩展 可理解、可复用。系统适应变化的能力

      可伸缩  可以通过添加资源来提升性能的能力

      架构可扩展  可理解问题 进行拆分  微服务、分层

      应用可扩展  可理解-拆分(包、模块)  可复用-封装(微内核、规则引擎、设计模式) 

      代码可扩展

 

鸡蛋篮子理论第一法则--拆分法则:如果鸡蛋在一个篮子里数不清,就分散到多个篮子里再数。

      拆分   拆分粒度约束拆分形态

            拆分形态 服务 模块 插件 包

            拆分粒度  内部复杂度 外部复杂度

      拆分粒度:

                 平衡原则:内部复杂度与外部复杂度反向关联,处理时需要平衡。

                 先粗后细:如果无法把握,先进行粗粒度拆分,如果存在问题则再进行拆分。

 

    封装复杂度模型

          预测变化  原则1、只预测2年内的变化   原则2 三次法则-没有把握不要预测,需要时再重构。

          封装变化 微内核、规则引擎、设计模式、抽象层

                 预测变化 决定 封装变化

 

 

 

 

          

      

posted on   李某人的窥视  阅读(74)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示