读架构漫谈之浅谈架构

       架构一词可以说是比较陌生的,读了架构漫谈的几篇博客,对其有了深的认识。架构:根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。以我个人的理解是:把要解决的问题按照某个原则切分成多个部分,在这些部分之间建立沟通机制,使其又形成整体,从而更高效率的解决问题。而出现架构的原因便是很多问题由于难度大、复杂程度高,一个人难以解决,需要不同角色的分工来实现,而分工的产生使不同的角色又必须通过某种机制联系在一起,从而才能解决问题,所以出现了架构。

        殊不知,架构早已深入到我们身边的各个领域,与我们的日常生活、学习等息息相关。如在建筑行业装修蓝图的设计,亦或是在大二时我们采取分工合作团队开发的形式开发软件等都可以理解为架构的简单应用。

       要想成为一名优秀的架构师必须要具备多方面的能力。

       认识概念。根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。概念就好比我们所未涉及到的领域的专业术语,学习一个新的领域,认识概念是基础。

       识别问题。当明白了问题的主体,我们才可能真正的认识问题是什么。因为问题的主体是问题的隐含边界,边界不确定下来,问题就是不确定的。一旦确定了主体,剩下的就是去搞明白主体有哪些问题。这一点我在日常的学习中还是深有体会的。往往我们在拿到题目后,通常是在没有熟读深入领略题目的含义的情况下,便开始着手做,到头来不仅浪费时间,而且做的啥也不是,终究我们还是没有认识问题到底是什么。

       做好架构切分。架构切分的输出实际上就是一个系统的模型,有的时候是从上往下切(企业),有的时候是从下往上合并,有的时候两者皆有之(人类社会的发展)。而切分的结果最终都会体现在组织架构上,因为我们切分的实际上就是人的利益。架构切分实际上是任务的分工和利益的权衡,是每个人的利益得到最大化,毕竟维护自己的利益是每个人的本性。

       如同架构的定义,软件架构的出现也是同样的。一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构。这个背后的动力也是一样的,就是提升参与的人的利益,降低成本。导火索便是是软件工程师的任务太重,我们需要把很多工作拆分出来。

       目前的我们距离成为一名合格的软件架构师是有相当大的差距的,当下最主要的任务便是做到精通专业知识,否则任何职业职位都只是幻想。

猜你喜欢

转载自www.cnblogs.com/zwang/p/12332181.html