• 浅谈架构漫谈


    在第一篇中谈到了什么是架构,架构起源于人类分工。我对架构的理解就是因为每个人的能力有限,时间有限,但是又想完成一项重大的工作,只能将这些工作进行划分,然后找到多个有相同目的的成员,每个人分一份工作,各司其职,然后使各部分工作协调同步共同完成。这句话中同时包含了为什么产生架构和架构的含义。

    第二篇中讲到概念理解是构建架构的基础,这个说法其实适用于所有行业,在做一件事之前理解它的运作原理对你之后对它的操作是会起到本质的改善的,才能发现其中的问题。比如我要用杯子,我先要理解中间的部分是用来盛水的,那么对我喝水或者接水都有本质的改善。所有的概念基本都有一个很大的问题,就是缺乏主语。而我们大家都心照不宣的忽略这个主语,沟通的时候也都以为大家都懂得对方说的主语是谁,结果大家都一起犯错误识别问题的一个最大的前提就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。以上面切土豆的例子来分析:

    1. 女主人提出一个问题,要切土豆下锅煮。

    2. 男主人有一个问题,女主人交代了自己必须要完成的一个任务。

    每个人都是优先处理自己的问题,自然就选择了 2,完成了这个任务。这也是大部分软件工程师处理的方式,以自己认为对的方式完成自己的问题,没什么不对啊,也难怪能得到我们的共鸣。这个里面犯的错误是什么呢?最后的结果是什么呢,每个人都做了很多工作,每个人都认为自己做的是对的,因此没有一个人对结果满意。因为真正的问题没有被发现,自然也就没有被解决,那么后续还得收拾残局,还要继续解决问题。事实上自己的工作并没有完成,反而更多了。把原因归结为沟通问题也是可以的,但对于解决问题似乎并没有太多的帮助。因为要改进沟通,这也是一个大问题。搞明白目标问题“是谁的问题,是什么问题”,当然也是需要沟通的。为了帮助自己更快的搞明白,首先要做的事是问正确的问题。架构师应该问的第一个正确的问题就是:目标问题是谁的问题。当我们处理问题的时候,如果发现自己正在致力于把自己的工作完成,要马上警惕起来,因为这样下去会演变成没有 ownership 的工作态度。在面对概念的时候,也会不求甚解,最终会导致没有真正的理解概念。作为软件工程师或者架构师,我们大部分时候是要去解决别人的问题,“别人”是谁,是值得好好思考的。在这个故事里面,男主人要解决的,实际上是这个家庭晚餐需要吃土豆的问题,目标问题的主体实际上是这个家庭的成员。只有找到目标问题的关键才能快速有效的解决问题。

    总结一下,要正确的认识问题,需要问两个问题:
    1. 这是谁的问题?
    2. 有什么问题?

    在处理架构过程中很重要的一点就是架构的切分,就是业务的切分。

    切分中需要注意的事情:

    1. 架构的切分的导火索是人的负载太重。

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

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

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

  • 相关阅读:
    Python编程题24--回文数
    Python编程题23--移动零
    Python编程题22--只出现一次的数字
    Python编程题21--每日温度
    Python编程题20--最大子序和
    Python编程题19--比特位计数
    推荐系统中对比实验工具--伯乐bole
    pytorch中反向传播的loss.backward(retain_graph=True)报错
    win10彻底禁止自动更新(家庭版操作)
    linux使用清华源安装工具,切换清华源
  • 原文地址:https://www.cnblogs.com/sisi-job/p/6482618.html
Copyright © 2020-2023  润新知