《架构漫谈》阅读笔记三

我们正好在学习软件体系结构这门课,在我们了解了架构的定义、由来、怎么认识了解架构还有识别问题之后,我们该怎么切分架构还有到底什么是软件呢?

切分就是利益的调整

我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。为什么这么说呢,因为维护自己的利益,是每个人的本性,是在骨子里面的,我们不能逃避这一点。我们以第一篇文章里面的例子为例来做解释。

为什么需要切分?

当人们认识到要主动的去切分一个系统的时候,毫无疑问,我们不能忘掉利益这个原动力。所有的切分决策都不能够违背这一点,这是大方向。结合前一篇“识别问题”,一旦确定了问题的主体,那么系统的利益相关人(用现代管理学语言叫:stockholder)就确定了下来。所发现的问题,会有几种情况:

  1. 某个或者某些利益相关人负载太重。
    • 时间上的负载太重。
    • 空间上的负载太重,本质上还是时间上的负载太重。
  2. 某个或者某些利益相关人的权利和义务不对等。

切分的原则

切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。

切分出来的部分,不应该超出一个自然人的负载。

切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。

是确保我们不能违反人性,因为维护自己的利益,是每个人的本性。

什么是软件?

软件扮演的角色

随着软件的规模的变大,做好一个软件也变得越来越难了。早期的程序员写程序,主要是为了帮助自己研究课题。这些程序员熟练了之后,提高了自己的生产力,并发现还可以帮助别人写程序,慢慢软件就变成了一个独立的行业。程序从早期由一个人完成,也逐渐变成了由很多不同角色的人共同合作来完成。以下讨论的前提,都是基于帮助别人写程序,多人合作的基础上的。结论对于单人为自己写程序也适用。

在没有软件之前,每个人干自己的工作,自行保存自己的工作结果。人们面对面或者通过电话等沟通,如下图所示。

总结一下

  1. 架构的切分的导火索是人的负载太重。
  2. 架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个 stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。
  3. 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
  4. 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
原文地址:https://www.cnblogs.com/jccjcc/p/13054107.html