zoukankan      html  css  js  c++  java
  • 《架构漫谈》阅读笔记三

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

    切分就是利益的调整

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

    为什么需要切分?

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

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

    切分的原则

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

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

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

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

    什么是软件?

    软件扮演的角色

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

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

    总结一下

    1. 架构的切分的导火索是人的负载太重。
    2. 架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个 stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。
    3. 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
    4. 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
  • 相关阅读:
    六. numpy数据矩阵
    十一.python面向对象(接口)abstractmethod,ABCMeta
    十.python面向对象(itme)
    九.python面向对象(双下方法内置方法)
    八. python面向对象(反射和内置方法)
    七. python面向对象(组合)
    六. python面向对象(内置函数)
    五. python面向对象(多态 和metaclass=abc.ABCMeta)
    四. python面向对象(继承)
    三. python面向对象(私有属性和私有方法 私有静态方法 私有类方法)
  • 原文地址:https://www.cnblogs.com/jccjcc/p/13054107.html
Copyright © 2011-2022 走看看