架构漫谈阅读笔记02
上一篇我们引入了架构,对架构有了一个简单的基础性的认识,我们知道人的精力和时间是有限的,让一个人去做所有的事的话效率太低,时空的压力也会太大,所以必须实现对系统进行划分,架构所要完成的主要工作就是分工,将工作分给最适合的相关人员。但是要知道,对于一个软件来说,往往是一个整体,要想实现架构的,就必须对架构进行切分,这也是进行架构设计的重点。
对于系统的切分来说不能随意的分隔,而且要遵循一定的原则:
1.对于必须在同一个连续时间里发生的活动是不能分隔的。
2.切分出来的部分的负责人,对这个部分的群里和义务是对等的。
3.切分出来的部分不能超过一个自然人的负载
4.切分是一个内部活动,内部无论怎么切,对整个系统的外部应该是透明的。
通俗点来说切分的目的就是要满足每个人的利益,要关注到每个人的利益点。每个人都是希望通过切分的部分做在自己利益范围内的是。
随着学习的深入我们常常会听到一个词,“建模”,实际上切分的过程就是建模的过程,用到的就是分而治之的思想,每切分一个小的问题产生的就是一系列的小问题,然后再对小的问题进行分析,最终将每一个小问题与用户的实际相结合。这就对架构师有了更高的要求,如何去分析理解更多的概念,更好的把握系统的实际问题。
在书中还指出:由于架构是一个整体的框架,是从最高层逐渐的形成的,切分的结果都是体现在组织结构上,所以对架构的调整一定要及其的慎重,任何的架构调整都会涉及到组织架构,千万不可轻视。同样,如果多每个人的利益分析的不够透彻,就更不能随意的确定架构,要知道没有人愿意去损害自己的利益,如果靠强制的手段去执行就会导致人心的溃散,最后也就是架构的失败,无法顺利的推进,所以架构的切分对架构的设计是至关重要的,忽略切分原则的切分就是架构失败的主要条件。
用书中对此部分的总结就是:
架构的切分的导火索是人的负载太重。
架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个 stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。
架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。