架构漫谈阅读笔记:
什么是构架,这是我们问的最多的一个问题。但是现在并没有很好的理解到底什么是软件架构。但是在架构漫谈之中给出了很好的解释。现在通过看软件架构漫谈的那九章博客,希望自己能够很好的明白。
第一章:什么是架构?
在第一章中提到了软件架构是一个过程,就像是人类在完成自己生活的一个过程,自然而然的形成人类自己的分工。其实在我的认知中,认为,软件架构就是我们在做一件事情或者在完成任务时,根据一些元素(例如每个人的特性)进行的很好的分工。就像,如果一件事只有自己完成,根本就不需要分工,也就不需要构架的存在了。所以我给架构的定义就是:一件事物由不同的角色分工完成,我认为这就是架构。但是,博客中也提到了这样的一句话:架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的的去识别,并进行分解、合并,解决这个问题的实践活动。我认为最为值得注意的是主动的、有目的。
第二章:认识概念是理解架构的基础
在课上,老师就提到了架构实际上解决的是人的问题,如果不能够很好的理解这句话,那么对于架构就做不到客户的需求。就像书中的标题:我们只有很好的理解到了架构的概念,例如:对于一个名次的概念就是很好的设定,每个人与每个人的理解都会不同。回过头来,根据架构的定义,要做好架构所首先必须具备的能力,我们必须能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。
第三章:如何做好架构之识别问题
在前两章提到了关于架构的定义以及认识,现在就应该做到识别。什么是识别,就是,我们对于一件事物的认识,对于问题的深刻理解。在博客中,提取到的一个例子,就能够很好的说明,不管我们在做什么的时候,即使是听一句话,每个人的注重点都是不同的,所以对于软件架构师,应该能够很好的理解用户的需求,在做到这个的同时,应该能够深层次的去理解用户说的每一句话,每一个的需求,不能够一看带过。所以,做到:找出问题的主体,是做架构的首要问题。
第四章:如何做好架构之架构切分
在第二章的时候,就提到了,我们在做架构的时候就是要做到好的划分,所以架构的精髓就是在于架构划分(利益诉求导致)。划分在现实世界中就是利益的调整。同样的切分也是。但是,在软件架构中要有切分的原则:
1、 必须在连续的时间内发生的一个活动,不能切分。
2、 切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。
3、 不应该超出一个自然人的负载等等。
只有很好的完成这些切分,一个很好的架构才会完成。
第六章:软件架构到底是解决什么问题的?
在上面提到了,软件架构是什么,现在理解了,我们就应该理解软件架构解决的什么。
在文章的刚开始就是软件架构师解决的人的问题,并不是我们所提到的用户的需求。因为只要是人能够了解到的问题,自身都是可以解决的。所以软件架构工程师应该自身发现问题,寻找问题。
第八章:从架构的角度看如何写好代码
在文章提到:重写代码,推翻原有架构,重新设计等等说法,来说明架构的进化。这实际上就是当初为了完成任务,没有充分思考所带来的后果。其实并没有很好的理解这一章的东西,有点看不懂。有点不是很了解在代码的部分的设定,例如他的部署单元的设定都是一个额大的难题。
第九章:理清技术、业务和架构的关系
在很多人的概念里面,架构和技术实际上是等同的。学会了几种技术,就认为自己是架构师了, 甚至是学习的技术越多,就觉得自己的水平越高。其实我也是这样认为的,但是,现在却不这样认为了,技术,就相当于自己认真的通过双手干活。
1. 技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。
2、在解决同一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效,高成本的技术。这是人类利益诉求所决定的。架构师应该承担起解决业务问题的这个角色来
通过这九篇 的博客,其实可以很清楚的了解到什么是架构,架构的作用是什么,但是唯一不理解的还是架构与代码之间的关系。