当前位置:网站首页>架构设计三原则
架构设计三原则
2022-07-02 06:24:00 【软件开发随心记】
合适原则
简单原则
- 复杂的系统
组件之间的关联多
组件数量庞大
结构复杂性带来的问题
组件越多,某个组件出现故障的概率越高
假设组件的故障率是 10%(有 10% 的时间不可用),那么有 3 个组件的系统可用性是(1-10%)×(1-10%)×(1-10%)= 72.9%,有 5 个组件的系统可用性是(1-10%)×(1-10%)×(1-10%)×(1-10%)×(1-10%)=59%,两者的可用性相差 13%。
某一组件的变动可能会对所有关联的组件产生影响。而这些影响可能会顺着关联链路扩散出去,对更多的组件产生影响。
组件 A 修改或者异常时,会影响组件 B/C/E,D 又会影响 E。这个问题会影响整个系统的开发效率,因为一旦变更涉及外部系统,需要协调各方统一进行方案评估、资源协调、上线配合。
要在一个复杂的系统中对一个问题进行定位会变得非常困难。
组件越多,每个组件都有可能产生问题,需要一个个进行排查。组件间的关系复杂,有可能某一个足见的表现出故障,但问题的根源并不是这个足见。
- 架构复杂性。
演化原则
架构设计与生物相似,也需要通过演化发展来适应外部环境(业务变化),物竞天择,适者生存。
其次,架构要不断地在实际应用过程中迭代,保留优秀的设计,修复有缺陷的设计,改正错误的设计,去掉无用的设计,使得架构逐渐完善。
第三,当业务发生变化时,架构要扩展、重构,甚至重写;代码也许会重写,但有价值的经验、教训、逻辑、设计等(类似生物体内的基因)却可以在新架构中延续。
演化原则非常重要,在做架构设计时需要时刻牢记。快速落地以满足需求,在后续发展中不断完善整体架构,跟随业务发展而不断演化。
边栏推荐
猜你喜欢

Ceaspectuss shipping company shipping artificial intelligence products, anytime, anywhere container inspection and reporting to achieve cloud yard, shipping company intelligent digital container contr

SQLI-LABS通關(less6-less14)

SQL injection closure judgment

ORACLE 11G利用 ORDS+pljson来实现json_table 效果

SSM实验室设备管理

Brief analysis of PHP session principle

外币记账及重估总账余额表变化(下)

ssm人事管理系统

读《敏捷整洁之道:回归本源》后感

Sqli Labs clearance summary - page 2
随机推荐
js数组的常用的原型方法
MapReduce与YARN原理解析
Cve - 2015 - 1635 (ms15 - 034) réplication de la vulnérabilité d'exécution de code à distance
Uniapp introduces local fonts
php中获取汉字拼音大写首字母
Sqli-labs customs clearance (less18-less20)
SSM学生成绩信息管理系统
Oracle 11.2.0.3 handles the problem of continuous growth of sysaux table space without downtime
js删除字符串的最后一位
ORACLE APEX 21.2安装及一键部署
php中时间戳转换为毫秒以及格式化时间
读《敏捷整洁之道:回归本源》后感
Explanation of suffix of Oracle EBS standard table
php中删除指定文件夹下的内容
MapReduce concepts and cases (Shang Silicon Valley Learning Notes)
@Transational踩坑
Flex Jiugongge layout
图解Kubernetes中的etcd的访问
Build FRP for intranet penetration
Take you to master the formatter of visual studio code




