架构漫谈读后感
什么是架构
-
根据要解决的问题,对目标系统的边界进行界定。
-
并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。 并对这些切分出来的部分,设立沟通机制。
-
根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
认知问题是架构的基础
要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。
做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。任何找上架构师的问题,绝对都不是真正的问题。需要从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。
要正确的认识问题,需要问两个问题:
-
这是谁的问题?
-
有什么问题?
能够清晰的定义问题,是解决问题的第一步。
任务切分
架构的切分的导火索是人、时间的负载太重。每个人的能力有限,或者单个人来做的话,时间太长。
架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。
架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
由此产出的一些设计算是软件架构:
-
软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。
-
每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。
不同的想法
作者把架构归结为分工的需要,但是只有一个人的项目的时候,也是需要架构的。架构使整个系统满足业务需求的基础上,简单、可维护。