在我认为架构就像排兵布阵、运筹帷幄、决胜千里。
就好像大战在即、我们需要派一支先锋队勘察地形、尽量摸清敌情。再根据了解信息;识别此仗的难点 复杂度。再做针对性的排兵布阵。
针对难点攻克;与将领们彻夜讨论;给出多种方案、以及去预判战况可能发生的变化;做一定程度的预案、兜底方案。
其实我们做软件架构、也很类似;
怎么做架构?首先还得熟悉业务场景、识别业务场景的复杂度在那里、根据复杂度做针对性的解决方案;不!应该是多个解决方案、至少三个吧、一个太狭义了;太主观、会影响客观判断。
有必要的情况下与团队集思广益、根据场景折中定最终的方案。
那么如何识别复杂度呢?
一、思路(怎么做架构设计)
- 通过需求分析来找到系统复杂度的地方、然后设计方案。
二、模式(有哪些复杂度)
- 复杂度来源:高性能、高可用、可扩展、安全、成本.....
三、套路(怎么做到降低复杂度)
- 分表分库、缓存、集群、分片、微服务、DDD、异地多活.....
四、目标
- 为了降低软件系统的复杂度、实现降本增效
网友评论