软件架构设计)很像排兵布阵?

image.png

在我认为架构就像排兵布阵、运筹帷幄、决胜千里。

就好像大战在即、我们需要派一支先锋队勘察地形、尽量摸清敌情。再根据了解信息;识别此仗的难点 复杂度。再做针对性的排兵布阵。

针对难点攻克;与将领们彻夜讨论;给出多种方案、以及去预判战况可能发生的变化;做一定程度的预案、兜底方案。

其实我们做软件架构、也很类似;

怎么做架构?首先还得熟悉业务场景、识别业务场景的复杂度在那里、根据复杂度做针对性的解决方案;不!应该是多个解决方案、至少三个吧、一个太狭义了;太主观、会影响客观判断。

有必要的情况下与团队集思广益、根据场景折中定最终的方案。

那么如何识别复杂度呢?

一、思路(怎么做架构设计)

  • 通过需求分析来找到系统复杂度的地方、然后设计方案。

二、模式(有哪些复杂度)

  • 复杂度来源:高性能、高可用、可扩展、安全、成本.....

三、套路(怎么做到降低复杂度)

  • 分表分库、缓存、集群、分片、微服务、DDD、异地多活.....

四、目标

  • 为了降低软件系统的复杂度、实现降本增效

五、附带一张架构流程图

image.png

4R理论地址:https://www.jianshu.com/p/cdce0b40ec5d

你可能感兴趣的:(软件架构设计)很像排兵布阵?)