卷1:第6章 Eclipse之一

2018-02-24 15:55 更新

原作者:Kim Moir
原地址:http://www.aosabook.org/en/eclipse.html

因为经验不足,有些地方可能翻译的不好,后续还会抽时间斟酌完善,大家发现问题请尽管拍砖,多谢!

几个术语的翻译:

artifact:工件

plugin:插件

committers:提交者

众所周知,实现软件的模块化是件困难的事情。管理不同社区开发的大量代码之间的互相合作也是件困难的事情。对于Eclipse来讲,在这两方面上都取得了成功。在2010年6月,Eclipse基金会发布了Helios合作版本,它由来自超过40个公司的39个项目团队和490个提交者来协作构建基础平台的功能。Eclipse起初的架构愿景是什么?它是怎样进化的?一个应用的架构是如何做到鼓励社区合作和成长?让我们从头开始。

2001年11月7日,一个名为Eclipse 1.0的开源项目释放。当时,Eclipse被描述为“一个并无任何特殊的集成开发环境(IDE)”。这个描述被有意简单化了,因为其架构愿景并不是又一个工具集而是一个框架,这个框架是模块化且可扩展的。Eclipse提供了基于组件的平台,它作为构建开发人员工具的基础。这种可扩展的架构鼓励社区基于一个核心平台来进行扩展以突破其最初的局限性。Eclipse SDK允许开发人员将其作为宿主环境(self-host)并利用Eclipse SDK本身来构建新版本的Eclipse。

开源开发者的经典形象是一个怀有奉献精神的人熬到深夜修改bug并实现有趣的新功能来满足个人兴趣。相反的,回顾一下Eclipse的早期历史,它最初的一些代码是IBM开发的VisualAge所贡献的。这个开源项目的最初贡献者是IBM的一家名为OTI的子公司(Object Technology International)。这些提交者将全部的工作时间用在开源项目上,他们在新闻群组上回答提问、修改bug、实现新功能。一些对其感兴趣的软件供应商也组织起来为扩展这个开放工具的功能付出了努力。最初的Eclipse参与成员是Borland、IBM、Merant、QNX软件系统、Rational软件、红帽、SuSE和TogetherSoft。

通过努力,这些公司基于Eclipse构建出了商用的产品。类似于一些公司在Linux内核上进行投入,他们让自己的雇员来提高开源软件,而开源软件又成为其商业产品的基础。在2004年的早期,Eclipse基金会成立来管理和扩张日益成长的Eclipse社区。这个非盈利性的基金会通过企业会员的会费来募集资金并由理事会来进行管理。时至今天,Eclipse社区已经扩展到包含170多个会员企业和近1000个贡献者。

最初,Eclipse作为SDK被人所知,但是现在它包含了更多的内容。截止到2010年7月,在eclipse.org中有250个不同的项目处于开发之中。有各种工具来支持C/C++、PHP、web services、模型驱动开发以及构建工具等。所有的这些项目都被包含在一个顶级项目(TLP)之中,这个顶级项目由高级会员所组成工程管理委员会(PMC)所管辖以负责技术方向和发布目标。简洁起见,本章只涉及到Eclipse SDK中的Eclipse项目和运行时Equinox项目的架构进化。鉴于Eclipse产品有一个很长的发展历史,我们将会关注早期的Eclipse以及3.0、3.4和4.0释放版本。

6.1 早期的Eclipse 在21世纪初期,有许多的软件开发工具但是它们中很少能协同工作。Eclipse试图提供一个开源平台,基于此平台可以为应用开发人员构建互操作的工具。这将使得开发人员(译者注——此处应该值得是工具开发人员)集中精力实现新的工具,而不会再书写诸如文件系统交互、提供软件更新以及连接源码库这样的基础设施事务。Eclipse可能作为 Java开发工具(JDT)为人所熟知。而其真正的意图可理解为这些优秀的Java开发工具能够作为样例,并提供给那些有兴趣开发其它语言工具的人们。

在深入了解Eclipse架构之前,让我们看一下对于开发人员来讲Eclipse SDK是什么样子的。在启动Eclipse并选择工作台后,展现在你面前的将会是Java透视图(perspective)。透视图根据当前使用的特定工具来组织视图(view)和编辑器(editor)。

}

一旦用户点击了选择了新的菜单项,实现这个扩展点的插件将会查询扩展注册器。提供扩展的插件会初始化功能提供者并加载插件。一旦这个插件被激活,在我们的例子中ExampleAction构造函数将会被执行,然后初始化一个工作台操作代理(Workbench action delegate)。当在工作台进行了选择且代理已被创建完成,实际的操作就会执行。信息提示框将会弹出这样的信息“Hello, Eclipse architecture world”。

这种可扩展的架构是Eclipse生态系统成功成长的关键因素之一。公司或个人可以开发新的插件,既可以作为开源释放可以商业出售。

Eclipse最重要的理念之一就是任何事情都是插件。不管这个插件是包含在Eclipse平台中,还是你自己写的,插件都是这个装配式应用的一等组件。图6.3展现了早期Eclipse版本中以插件方式实现的相关功能。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号