读完前三篇《架构漫谈》后,认识了什么是架构、认识概念是理解架构的基础、如何做好架构之识别问题里面所写到的精髓内容。首先要了解架构师如何工作,要先从根本上理解了什么是架构。
首先我们应该知道为什么产生架构:1.必须由人执行的工作(不需要人介入,就意味着不需要改造,也就不需要架构了)2.每个人的能力有限(每个人都有自己的强项,个人的产出受限于最短板,并且由于人的结构限制,同时只能专注于做好一件事情,比如虽然有两只眼睛,但是只能同时专注于一件事物,有两只手,无法同时做不同的事情。3.每个人的时间有限(为了减少时间的投入,必然会导致把工作分解出去,给擅长于这些工作的角色来完成,见2,从而缩短时间)4.人对目标系统有更高的要求(如果满足于现状,也就不需要进行架构了)5.目标系统的复杂性使得单个人完成这个系统,满足条件2,3(如果个人就可以完成系统的提高,也不需要别的人参与,也就不需要架构的涉及,只是工匠,并且一般这个工作对时间的要求也不迫切。当足够熟练之后,也会有一定的架构思考,但考虑更多的是如何提高质量,提高个人的时间效率)
再来理解什么是架构,就是:
1.根据要解决的问题,对目标系统的边界进行界定。
2.并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
3.并对这些切分出来的部分,设立沟通机制。
4.根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
这是比较难理解的对于我的现阶段,但是通过看例子明白了许多,人的需求增多带动任务的划分,划分内容带动了架构的产生。架构的产出物,自然就是对问题的分析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。
然后就是概念的一些理解,正如文章中所讲到的,你如果在做一个新的东西之前,去了解它的概念、应用部分,你会更加的得心应手,学习的会更加的迅速。完全陌生的东西还不知道理解,这样我认为就很难入门。文章中讲到了何为“相”、何为“抽象”等几个概念,这些概念的例子都是在帮我更好的理解内容。为什么强调这个呢,因为做架构的时候,很多时候都是在一个新的领域解决问题,必须要快速进入并掌握这个领域,然后才能够正确的解决问题。一个陌生的东西来让你重新做是需要你快速适应的。
把真正的问题找到,那么问题就已经解决80%了。这个能力基本上就决定了架构师的水平。架构师应该问的第一个正确的问题就是:目标问题是谁的问题。这也是架构师的重要工作之一。只有真正明白了是谁的问题,才能够真正地完成自己的任务,真正地把自己的问题解决掉,而不是反过来。文章中讲到了找出问题的主体,是做架构的首要问题。我认为,我们要解决的问题,一定都是人的问题。文章中还强调了更进一步,架构师要解决的,基本都是别人的问题,不是自己的问题。再进一步,我们一定要明白,任何找上架构师的问题,绝对都不是真正的问题。为什么呢? 因为如果是真正的问题的话,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。同时来说,问题的主体对问题的边界确定很重要。总结一下,要正确的认识问题,需要问两个问题:1.这是谁的问题?2.有什么问题?这两个问题其实是一体的,但是解决第一个问题的好坏是衡量一个合格架构师需要的能力。
总的来说,架构实际上解决的是人的问题,我们必须牢牢抓住这一个中心。通过这三篇文章的阅读,我在去完成一个任务的时候,我会更加的有目的性,而不是一个无头苍蝇到处的乱撞。我认为,架构师这门工作需要经验的积累,如何去工作,是指更加有效的工作,如果仅仅是工作,就显得职业的意义没有那么大,正如文章中强调的,要去认真的寻找问题才可以。