架构漫谈读后感

什么是架构

  1. 根据要解决的问题,对目标系统的边界进行界定。

  2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。 并对这些切分出来的部分,设立沟通机制。

  3. 根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

认知问题是架构的基础

要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。任何找上架构师的问题,绝对都不是真正的问题。需要从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。

要正确的认识问题,需要问两个问题:

  1. 这是谁的问题?

  2. 有什么问题?

能够清晰的定义问题,是解决问题的第一步。

任务切分

架构的切分的导火索是人、时间的负载太重。每个人的能力有限,或者单个人来做的话,时间太长。

架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。

架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。

架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

由此产出的一些设计算是软件架构:

  1. 软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。

  2. 每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

不同的想法

作者把架构归结为分工的需要,但是只有一个人的项目的时候,也是需要架构的。架构使整个系统满足业务需求的基础上,简单、可维护。

原文地址:https://www.cnblogs.com/cchjl/p/6501446.html