架构漫谈读后感

  架构的产生是由于人的能力有限,从而产生了分工,人人各司其职,通过沟通来获得生活的必须品,这就产生了架构。架构就是把一个整体切分成不同的部分,由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动。架构解决的是人的问题。做好架构的能力,首先要对系统有正确的概念,有正确的理解,才能了解问题的本质。

  架构需要解决人的问题,要做好架构,需要正确的认识到最终要解决的到底是什么问题。正确的认识概念是为了能够正确的认识目标领域所需要解决的问题,那么如何做好架构的识别问题呢?识别问题的一个最大的前提是搞清楚是谁的问题,我们在沟通的时候可能会忽略一些自以为对方都知道的问题,其实可能双方说的并不是同一个东西,最后导致识别的问题是错误的。在识别出是谁的问题之后就会发现,在大部分的情况下,问题会得到解决。

  要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。任何找上架构师的问题,绝对都不是真正的问题。需要从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。

  很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。所以切分是利益的调整。切分也需要有原则,这四个原则是:连续时间内的活动不能切分;权利义务对等;不超出一个人的负载;对外部透明。总结下来,架构的切分的导火索是人的负载太重。架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

  架构师应该承担起解决业务问题的这个角色来,专注于Business Domain和软件本身的架构,让技术人员致力于为业务在计算机中跑起来而努力。只有把这两者很好的结合起来,才能更好地完成业务的目标,才会让软件更好地服务于大家。最终一定会得到一个很好的软件架构,令软件开发团队和业务部门都能够很好地开展工作并降低成本。

原文地址:https://www.cnblogs.com/java-meng/p/6506381.html