浅析软件架构

架构漫谈url:http://kb.cnblogs.com/page/539160/

      什么是软件架构,在以往的学习中我们可能都用到过软件的架构,可到底什么是软件架构可能我们反而不是十分了解。通过阅读资深架构师王概凯Kevin执笔的系列专栏中的《架构漫谈》我对软件架构有了新的了解,在《架构漫谈》中作者通过举例子等方式十分形象生动的讲解了作者对架构的认识,这些知识对刚刚学习架构知识的我有着很大的帮助。作者在什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等方面做了大量的讲解,这些知识让我对架构也有了自己的一些见解。

      首先要了解什么是软件架构,在我看来首先应了解软件,那什么是软件?在《架构漫谈》中作者提到软件是在硬件上编写出的程序,是用来控制硬件的行为的。同时作者也形象的把软件比喻为计算机中的另一个自己,人们通过操控计算机来操控另一个自己来完成自己想要做的事情。当然软件出现的作用就是让人们利用计算机更加快捷的完成自己的事情,方便人们的生活工作等方面。随着软件的规模的变大,做好一个软件也变得越来越难了。早期的程序员写程序,主要是为了帮助自己研究课题。这些程序员熟练了之后,提高了自己的生产力,并发现还可以帮助别人写程序,慢慢软件就变成了一个独立的行业。程序从早期由一个人完成,也逐渐变成了由很多不同角色的人共同合作来完成。软件工程师的精力有限所以要完成一个大型的软件需要合作,这就把原来一个人的连续工作,拆分成了不同角色的人的连续配合,演化成了不同的软件开发的模式。这样也使得软件架构的出现,一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构。

      那什么是架构呢,在《架构漫谈》中作者利用人类自己的生活形象的说明了架构的概念,同时又用了建筑的例子阐述了自己的观点,架构是:根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。根据设立的沟通机制使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。架构的提出让我们对任务的拆分对问题的解决都有着十分重要的启发,让软件的开发变得更加注重合作和关注问题的解决,让大型软件的开发变得快捷和方便。

      通过对软件和架构的分析我们可以得出,软件架构便是为了解决软件开发中开发软件设计的方面广泛同时软件开发人员精力不足以同时开发软件中的所有模块的问题。软件架构的提出把软件的开发切分成各个架构由不同的人员开发各自的架构,但是不管怎么分拆,所达到的目标没有任何变化,就是完成业务在计算机中的虚拟化。同时软件架构分为部署的架构和代码的架构,开发时当流量越来越大,我们就会发现,软件所部属的机器就会开始按照树状的结构开始分拆,就会形成硬件的部属架构。为了把业务在软件中实现并落地,需要前端人员、业务代码人员、存储层等不同技巧的人同时工作,需要切分成代码的架构。这就是为什么会形成代码的分层,形成代码的架构。软件架构的实现需要软件的组织架构和流程来保障。

原文地址:https://www.cnblogs.com/lingxi/p/5442060.html