技术架构的战略和战术原则( 四 )
图 1
结构上的复杂性存在的第一个问题是,组件越多,就越有可能其中某个组件出现故障,从而导致系统故障。假设组件的故障概率是 1%(有 1% 的时间不可用),那么 2 个组件的系统可用性是 99%*99%=98%,5 个组件的系统可用性是 99%*99%*99%*99%*99%=95%,两者相差 3%。说明组件越多,系统稳定性就越差。
结构上的复杂性存在的第二个问题是,某个组件改动,会影响关联的组件。比如上图中 C 组件发生改动,会影响 A、B、D,而 A 有会影响 E。这样就会形成一连串的多比诺效应。
2. 逻辑复杂性
意识到结构复杂性的问题后,只要减少组件就能让系统结构变简单?这样做还是行不通,原因在于除了结构的复杂性,还有逻辑的复杂性,如果一个组件的逻辑太复杂,通用会带来问题。
我们试想一下,把淘宝的所有功能都在一个组件中实现,可以想象这个系统要有多庞大:几百人维护一个系统、代码分支几十个、需求变更应接不暇、不同分支的回归测试、修改一段代码可能影响整个系统的运行等等。这些场景相信大家都不希望看到的。
推荐阅读
- 法正|三国志战略版孙坚法正T0阵容,锤爆满红吴骑,不输满红社稷弓吴枪
- 张角|三国志战略版张角5万伤害的阵容,法师前三,绝非浪得虚名!
- 甘宁|三国志战略版:甘宁玩盾兵,照样暴捶麒麟桃园
- 穿越火线|三国志战略版张角最强阵容,需配合S级的兵种才能发挥最强战斗力
- 西凉|三国志战略版:出生州选择也有大学问,开局选好霸业即成
- 手机游戏|LOL手游技术主播排位遭遇安排,玩家段位各种大倒退,多人“中招”
- 吕蒙|三国志战略版:吕蒙、关银屏黑科技联动,技穷、缴械全都有
- 索尔|梦幻模拟战手游:虐菜就要用战略——挑战五战略打法
- 诸葛亮|三国志战略版:“巨型航母”带两艘“护卫舰”,意欲北定中原!
- 黄忠|三国志战略版黄忠蜀盾黑科技,蜀盾内战和打弟弟一样!