《架构漫谈》阅读笔记
通过王建民老师的导读和我课后的阅读,我对《架构漫谈》这几篇博客有了一点自己的感想,《架构漫谈》对于架构的描写读起来很轻松,不像其他书十分晦涩难懂。
在每个人都必须自己完成所有生活必须品的生产的时候,是没有架构的(当然在个人来讲,同一时刻只能做有限的事情,在时间上还是可能会产生架构的)。一旦产生的分工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个体都拥有生活必须品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事情,并具备一定的交易能力即可。架构是由于分工的出现,相互合作的人之间需要达成统一的目标。所以出现了架构,书中对于架构的定义是:1. 根据要解决的问题,对目标系统的边界进行界定。 2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。 3. 并对这些切分出来的部分,设立沟通机制。 4. 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成
目标系统的所有工作。 要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。事实上,这一能力,在任何一个领域都是适用的,比如我们如果想要学习一项新的技术,如 Hibernate、Spring、PhotoShop、WWW、Internet 等等,如果知道这些概念所要解决的问题,学习这些新的技术或者概念就会如虎添翼,快速的入手;学习一个新的领域,也会非常的快速有效;使用这些概念来解释问题,甚至发明新的概念都是很容易的事。为什么强调这个呢,因为做架构的时候,很多时候都是在一个新的领域解决问题,必须要快速进入并掌握这个领域,然后才能够正确的解决问题。解决问题之前我们要学会发现问题,并确定问题的主题,当明白了问题的主体,我们才可能真正的认识问题是什么。因为问题的主体是问题的隐含边界,边界不确定下来,问题就是不确定的。一旦确定了主体,剩下的就是去搞明白主体有哪些问题。这个就比较直接了,常用的方式就是直接面对主体进行访谈,深入到主体的工作生活当中,体验并感受这些问题,甚至通过数据的反馈来定位问题。
我们要将架构进行切分以减轻负载,1. 架构的切分的导火索是人的负载太重。 2. 架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。 3. 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。 4. 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
我们架构的结构是经过多多次变化的,但是都是为了适应不同的实例,使不同的结构可以随意的进行组合以满足系统的需求,每一部分负责专门的工作,这样对于我们查找bug也有很大的帮助,