架构漫谈读后总结

一.什么是软件架构

          根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。以上是作者给出的对于软件体系架构的理解,其实软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。

    我个人对于软件结构的理解就是任何一个架构,就是用来方便软件开发,提高软件开发效率和软件执行效率的。当我们使用任何一种或者自己的架构的时候,最终的目的是为了方便自己使用,而不是为了架构而使用架构。架构是什么?其实就是一种处理软件开发的方法,这种方法是多样化的,丰富化的,没有一个明确的界定,哪个架构好或者哪个不好,只是针对某一次的开发,相对来说,有适合的架构能够更好的帮助我们去开发,这才是好的架构。要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。在做软件开发的过程中,我们通常都是要用到抽象化的思维,但是抽象画也只是为了更好的解决问题,任何一个产品,解决的是谁的问题?终归会回人的问题的中。那么,软件的开发也是如此,所以,在架构中,不一定非要去尝试抽象化,好比一个软件不能为了用某项技术而去用。架构师是用来解决实际问题的,好比文中提到的男女主人公削土豆的例子,问题离的架构师越远,那么软件的开发将会是困难的,因此一个软件架构师,最起码的是要让自己离实际问题越来越近,也就是能中正确的发现问题,从而去设计正确的方法。一般来说,从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。

       对于我们剩下的问题就是对架构进行切分,为什么要进行切分。主要有以下几个方面。某个或者某些利益相关人负载太重。时间上的负载太重。空间上的负载太重,本质上还是时间上的负载太重。某个或者某些利益相关人的权利和义务不对等。对于一个软件来说,无论对于谁,客户还是开发者,利益是最重要的。因此这时候,需要架构是对架构进行一个切分,来满足各自的利益需求。对于切分的原则问题,文中有相当细致的描述,最主要的是要掌握一个平衡问题。对于什么是软件的问题,在课程软件工程概论进行学习中,个人的理解为是有效解决用户具体问题的产品。终归到底,软件的作用就是解决各种各样的问题,用来方便生活。正因如此,在软件开发过程中,随着利益的划分,许多人讲软件分为多个模块,也就是我们现在使用的架构。

      在后面的介绍中,主要介绍软件架构师的工作。其实,任何一个职位都是有一定作用的,从架构的角度去写代码的时候,我们会更多的考虑到后期的问题,也就是不单单只是为了完成任务而去写代码。应该是为了一个团队的利益出发,一个人的水平再高,如果只是一个人,没有一个良好的团队,那么也是不可行的。所以说,软件体系结构终究是为了解决软件问题,或者是人的问题。架构的作用就是方便快捷高效的处理,因此,在实际开发中,一定要注意对架构的应运和选择。

posted @ 2016-04-28 19:57  马思勉  阅读(211)  评论(1编辑  收藏  举报