做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。任何找上架构师的问题,绝对都不是真正的问题。需要从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。
要正确的认识问题,需要问两个问题:
- 这是谁的问题?
- 有什么问题?
能够清晰的定义问题,是解决问题的第一步。
如何做好架构的架构切分
架构的切分的导火索是人、时间的负载太重。每个人的能力有限,或者单个人来做的话,时间太长。架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。
架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
由此产出的一些设计算是软件架构:
- 软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。
- 每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。
自己的想法
作者把架构归结为分工的需要,但是只有一个人的项目的时候,也是需要架构的。架构使整个系统满足业务需求的基础上,简单、可维护。总之,在以后的工作中,架构无论对个人还是团体都有着不可估量的作用。架构更多的可以让一个人更加适应一个团队,并在这一个团队中发挥其所能发挥的作用。
自我抑郁又自我救赎