技术开发 频道

软件质量之路(4):建立核心框架

    隔离第三方技术。  

    当前的软件开发向着协作的方向发展。在这种情况下,大量的第三方软件出现了。软件业的分工将会给软件业带来繁荣,但是对于软件组织来说,就需要考虑第三方软件的成本、生命力、本组织系统对其的依赖程度等问题。这部分的工作应该交给框架。让框架来负责把核心应用和第三方技术隔离开来。例如,作为企业应用的开发者,我发现在数据库层次上的变化实在是太大了,新的xquery查询语言、ORM技术,这些都使得应用系统需要不断的变化。这无疑给应用系统增加了风险。因此,我决定设计一个抽象的层次,把这些技术和核心应用隔离起来。抽象层次只负责向数据库询问符合某种条件的数据,至于这个查询采用sql还是xquery来处理那都没有关系。因此技术细节被隔离了。

    另一个实例

    上文讨论的例子是一个简单的例子,主要是从代码层面来讲述框架的概念。但是为了完全理解框架的威力,我们需要从更高的层次来看待框架的概念。我们选择的例子是Eclipse。从IBM向开放源码界捐赠Eclipse以来,Eclipse迅速成为一种非常优秀的集成开发工具(它绝对不是简单的Java IDE),Eclipse缘何成功呢?关键在于Eclipse的设计理念和根据设计理念发展起来的底层支持框架。

    在软件开发中,需要各种各样的技能,需要各种各样的开发工具,但是工具之间如果彼此不能够相互交互,那么开发流程就难以连贯。Eclipse的目标就是要解决这个问题。

    Eclipse平台的价值在于它的促进作用:根据插件模型来快速开发集成功能部件。

    那么怎么做呢?我们来看Eclipse自己对这个问题的描述:

    Eclipse 的核心是动态发现插件的体系结构。平台负责处理基本环境的后台工作,并提供标准的用户导航模型。于是每个插件可以专注于执行少量的任务。有哪些类型的任务?定义、测试、制作动画、发布、编译、调试、图解等等,只要您想象得到的应有尽有。

    Eclipse的平台运行环境是框架的支持部分,而平台中涉及的Workbench、Help、Team、Workspace都属于抽象体,而插头表示系统的扩展点(称为hook)。

    这里重点要讨论的是Eclipse的定位哲学。Eclipse作为一个集成开发工具,他希望能够将各种各样的开发工具集中到一个平台下,但是所有的事情都由一个组织来做是不可能的,最好的方式就是建立一种组织方式,能够将不同技术提供商的技术集成起来。所以他的定位哲学就是提供做事的方法,而不做具体的事情。

    这种思路在优秀的软件设计中是很常见的,另一个优秀的范例是Ant。由于篇幅所限,我们就不进行深入讨论了。

    所以Eclipse只是提供针对IDE环境、Java对象模型提供了一组的抽象体,插件的开发者可以根据自己的需要,设计自己的插件,通过扩展点接入到Eclipse。Eclipse是一个成功的软件,也是一个成功的框架。

    深入了解

    developerWorks 上的 Eclipse 平台入门一文提供了Eclipse的相关信息。

    框架过程模式是一本讨论框架设计过程的书籍,您可以从中了解到框架的开发过程和普通软件的开发过程的区别。

0
相关文章