这周,我读了资深架构师王概凯执笔的《架构漫谈》,让对架构一无所知的我对架构初步有了一些认识。

首先,在开篇王先生就阐述什么是架构。其实每个人心中的架构都是不同理解的,没有一个确切的定义,王先生用很生动的例子为我们讲解了为什么要这样理解架构。比如他提到的社会分工,仔细想想确实如此,在原始社会,最开始都是各自干各自的,能够满足自己的基本生存就行了。后来遇到什么大灾难,或者需要获取更多的满足,就需要更多人分工合作了,这时候就需要架构了。谁干什么,什么时候行动,怎么会和等等,这一系列计划说起来其实就是架构了。因此对于这章我能了解到每个架构都是不确切的,但是他都有一个共同点,就是能够以最短时间,最快效率达到人们期待的目的的一种方式。

我对架构的理解就是:当人与人之间产生了一些比较大的需要解决的问题时,一个人的能力难以解决,这时候就需要分工合作,将问题分而治之,各个击破,建立不同部分相互沟通的机制,使得这些部分有机地结合为一个整体,完成整体所需要的所有活动,从而将问题解决。架构由此产生。架构是人类有被动认识世界变为主动,并以更高的效率改造世界的方法。

如何识别问题,这是一个重点。这是王先生的例子:我们先看一则笑话。女主人公:老公,把袋子里的土豆切一半下锅。结果老公是把袋子里的每个土豆都削了一半,然后下锅。从不同的角度看丈夫确实准确实施了妻子的需求,这可能只是沟通问题,但是在现实中,这样可就是大问题了。我们不能拿着客户的需求问题就开始跑,需要仔细思考,这些需求是为了什么,这些问题的限制边界,条件是什么,是什么产生了这些问题等等,比如这个丈夫和妻子,妻子主要需求就是烧饭,丈夫这时应该了解这个问题的本质,为什么削的土豆-------为了给人吃嘛。既然知道这个本质了,就不应该把每个土豆都削一半嘛,仔细思考就应该是4个削2个的道理。所以在做架构的时候需要了解需求问题的本质,发现问题背后的问题。

当把问题识别清楚后,就要对架构切分,一个团队分工合作共同完成一个问题。分工背后的动力就是每个人自己的利益。每个人都希望自己的利益最大化,然而一个人的能力和精力都是有限的,必然要割舍掉一些自己不擅长的东西,用自己擅长的换取别人擅长的。相比一个人干所有的事情,分工的结果就是大家都能得到更多,也就产生了一个互相依赖的社会,这就是自然而然产生的架构切分。

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

 接下来需要考虑的就是架构的切分和建模,在当今社会,最真实的人与人之间的关系就是利益关系,所以在解决问题时会涉及到利益的问题,这个时候需要有所

动作,作相应的调整,这个调整就是架构的切分。切分的过程就是建模的过程,架构切分的输出实际上就是一个系统的模型,而切分的最终结果都会体现在组织架构

上,因为我们切分的实际上就是人的利益。最后总结一下:

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

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

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

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

如果一个人在工作中,只是致力于完成自己的工作,以做好自己的工作为主要目标,那么最多只能成为一个工匠,无法成为一个架构师。因为这个过程解决的还是自己的问题,并没有时间的压力,可以随意什么时候做完都可以。

当我们所做的工作是处于社会的分工的一环,需要帮助别人解决问题,并且按时解决别人的问题成为我们自己的问题的时候,我们就有了时间压力,潜意识里会自然而然的有一种对时间的恐惧。这个恐惧在潜意识里面会想方设法推动我们采用各种手段,以便及时的完成工作,换取报酬。甚至会加班加点,不择手段。

如果我们还生活在这个恐惧下面,是不可能成为架构师的。要成为架构师,必须要超越这个恐惧才能够看清楚,我们要解决的是别人的问题,不是自己完成工作的问题。因为仅仅是完成了自己的工作,也并不一定就解决了别人的问题。如果别人的问题没有解决–即使我们认为自己的工作完成了–我们的工作实际也没完成,因为我们工作是否完成,是别人说的算的,不是我们自己。

这只是我给人的见解,也只是自己对软件架构的简单理解。

第一次简单测试

1、什么是架构

答:根据问题进行准确的定位,将问题整体细化为若干不同的小部分,然后将这些细化之后的若干部分根据每个人的能力、喜好、时间等进行分配,让彼此在完成这些部分的同时进行有效的沟通使得每个人解决的不同部分连贯起来,最后再将这些部分进行整合。

复杂问题简单化,简单问题流程化

2、为什么要出现架构

答:解决复杂的问题,让复杂的问题简单化,提高解决问题的效率。

3、架构解决谁的问题

答:架构解决人的问题

 

posted on 2023-02-17 20:45  辰逸1  阅读(18)  评论(0编辑  收藏  举报