卷1:第6章 Eclipse之一

2018-02-24 15:55 更新

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

因?yàn)榻?jīng)驗(yàn)不足,有些地方可能翻譯的不好,后續(xù)還會(huì)抽時(shí)間斟酌完善,大家發(fā)現(xiàn)問題請(qǐng)盡管拍磚,多謝!

幾個(gè)術(shù)語的翻譯:

artifact:工件

plugin:插件

committers:提交者

眾所周知,實(shí)現(xiàn)軟件的模塊化是件困難的事情。管理不同社區(qū)開發(fā)的大量代碼之間的互相合作也是件困難的事情。對(duì)于Eclipse來講,在這兩方面上都取得了成功。在2010年6月,Eclipse基金會(huì)發(fā)布了Helios合作版本,它由來自超過40個(gè)公司的39個(gè)項(xiàng)目團(tuán)隊(duì)和490個(gè)提交者來協(xié)作構(gòu)建基礎(chǔ)平臺(tái)的功能。Eclipse起初的架構(gòu)愿景是什么?它是怎樣進(jìn)化的?一個(gè)應(yīng)用的架構(gòu)是如何做到鼓勵(lì)社區(qū)合作和成長(zhǎng)?讓我們從頭開始。

2001年11月7日,一個(gè)名為Eclipse 1.0的開源項(xiàng)目釋放。當(dāng)時(shí),Eclipse被描述為“一個(gè)并無任何特殊的集成開發(fā)環(huán)境(IDE)”。這個(gè)描述被有意簡(jiǎn)單化了,因?yàn)槠浼軜?gòu)愿景并不是又一個(gè)工具集而是一個(gè)框架,這個(gè)框架是模塊化且可擴(kuò)展的。Eclipse提供了基于組件的平臺(tái),它作為構(gòu)建開發(fā)人員工具的基礎(chǔ)。這種可擴(kuò)展的架構(gòu)鼓勵(lì)社區(qū)基于一個(gè)核心平臺(tái)來進(jìn)行擴(kuò)展以突破其最初的局限性。Eclipse SDK允許開發(fā)人員將其作為宿主環(huán)境(self-host)并利用Eclipse SDK本身來構(gòu)建新版本的Eclipse。

開源開發(fā)者的經(jīng)典形象是一個(gè)懷有奉獻(xiàn)精神的人熬到深夜修改bug并實(shí)現(xiàn)有趣的新功能來滿足個(gè)人興趣。相反的,回顧一下Eclipse的早期歷史,它最初的一些代碼是IBM開發(fā)的VisualAge所貢獻(xiàn)的。這個(gè)開源項(xiàng)目的最初貢獻(xiàn)者是IBM的一家名為OTI的子公司(Object Technology International)。這些提交者將全部的工作時(shí)間用在開源項(xiàng)目上,他們?cè)谛侣勅航M上回答提問、修改bug、實(shí)現(xiàn)新功能。一些對(duì)其感興趣的軟件供應(yīng)商也組織起來為擴(kuò)展這個(gè)開放工具的功能付出了努力。最初的Eclipse參與成員是Borland、IBM、Merant、QNX軟件系統(tǒng)、Rational軟件、紅帽、SuSE和TogetherSoft。

通過努力,這些公司基于Eclipse構(gòu)建出了商用的產(chǎn)品。類似于一些公司在Linux內(nèi)核上進(jìn)行投入,他們讓自己的雇員來提高開源軟件,而開源軟件又成為其商業(yè)產(chǎn)品的基礎(chǔ)。在2004年的早期,Eclipse基金會(huì)成立來管理和擴(kuò)張日益成長(zhǎng)的Eclipse社區(qū)。這個(gè)非盈利性的基金會(huì)通過企業(yè)會(huì)員的會(huì)費(fèi)來募集資金并由理事會(huì)來進(jìn)行管理。時(shí)至今天,Eclipse社區(qū)已經(jīng)擴(kuò)展到包含170多個(gè)會(huì)員企業(yè)和近1000個(gè)貢獻(xiàn)者。

最初,Eclipse作為SDK被人所知,但是現(xiàn)在它包含了更多的內(nèi)容。截止到2010年7月,在eclipse.org中有250個(gè)不同的項(xiàng)目處于開發(fā)之中。有各種工具來支持C/C++、PHP、web services、模型驅(qū)動(dòng)開發(fā)以及構(gòu)建工具等。所有的這些項(xiàng)目都被包含在一個(gè)頂級(jí)項(xiàng)目(TLP)之中,這個(gè)頂級(jí)項(xiàng)目由高級(jí)會(huì)員所組成工程管理委員會(huì)(PMC)所管轄以負(fù)責(zé)技術(shù)方向和發(fā)布目標(biāo)。簡(jiǎn)潔起見,本章只涉及到Eclipse SDK中的Eclipse項(xiàng)目和運(yùn)行時(shí)Equinox項(xiàng)目的架構(gòu)進(jìn)化。鑒于Eclipse產(chǎn)品有一個(gè)很長(zhǎng)的發(fā)展歷史,我們將會(huì)關(guān)注早期的Eclipse以及3.0、3.4和4.0釋放版本。

6.1 早期的Eclipse?在21世紀(jì)初期,有許多的軟件開發(fā)工具但是它們中很少能協(xié)同工作。Eclipse試圖提供一個(gè)開源平臺(tái),基于此平臺(tái)可以為應(yīng)用開發(fā)人員構(gòu)建互操作的工具。這將使得開發(fā)人員(譯者注——此處應(yīng)該值得是工具開發(fā)人員)集中精力實(shí)現(xiàn)新的工具,而不會(huì)再書寫諸如文件系統(tǒng)交互、提供軟件更新以及連接源碼庫(kù)這樣的基礎(chǔ)設(shè)施事務(wù)。Eclipse可能作為 Java開發(fā)工具(JDT)為人所熟知。而其真正的意圖可理解為這些優(yōu)秀的Java開發(fā)工具能夠作為樣例,并提供給那些有興趣開發(fā)其它語言工具的人們。

在深入了解Eclipse架構(gòu)之前,讓我們看一下對(duì)于開發(fā)人員來講Eclipse SDK是什么樣子的。在啟動(dòng)Eclipse并選擇工作臺(tái)后,展現(xiàn)在你面前的將會(huì)是Java透視圖(perspective)。透視圖根據(jù)當(dāng)前使用的特定工具來組織視圖(view)和編輯器(editor)。

}

一旦用戶點(diǎn)擊了選擇了新的菜單項(xiàng),實(shí)現(xiàn)這個(gè)擴(kuò)展點(diǎn)的插件將會(huì)查詢擴(kuò)展注冊(cè)器。提供擴(kuò)展的插件會(huì)初始化功能提供者并加載插件。一旦這個(gè)插件被激活,在我們的例子中ExampleAction構(gòu)造函數(shù)將會(huì)被執(zhí)行,然后初始化一個(gè)工作臺(tái)操作代理(Workbench action delegate)。當(dāng)在工作臺(tái)進(jìn)行了選擇且代理已被創(chuàng)建完成,實(shí)際的操作就會(huì)執(zhí)行。信息提示框?qū)?huì)彈出這樣的信息“Hello, Eclipse architecture world”。

這種可擴(kuò)展的架構(gòu)是Eclipse生態(tài)系統(tǒng)成功成長(zhǎng)的關(guān)鍵因素之一。公司或個(gè)人可以開發(fā)新的插件,既可以作為開源釋放可以商業(yè)出售。

Eclipse最重要的理念之一就是任何事情都是插件。不管這個(gè)插件是包含在Eclipse平臺(tái)中,還是你自己寫的,插件都是這個(gè)裝配式應(yīng)用的一等組件。圖6.3展現(xiàn)了早期Eclipse版本中以插件方式實(shí)現(xiàn)的相關(guān)功能。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)