日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
GroovyEclipse開發(fā)團(tuán)隊(duì)訪談:不要畏懼內(nèi)部API

Andrew Eisenberg曾是英屬哥倫比亞大學(xué)的一名PhD開發(fā)人員,后來工作于SpringSource團(tuán)隊(duì),并從事Groovy Eclipse工具支持方面的工作。他的主要開發(fā)理念是:通過與正確的IDE交互,將更具表達(dá)力。

為萬全等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及萬全網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、萬全網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

Andy Clement則是SpringSource的高級軟件工程師,他做許多與開發(fā)工具有關(guān)的工作( Groovy,AspectJ、Tasktop以及SpringSource工具套件)。過去的幾年里Clement一直在領(lǐng)導(dǎo)AspectJ Eclipse項(xiàng)目。他還在Spring Framework 3 中創(chuàng)建了Spring Expression Language支持并為SpringSource dm Server寫了不少代碼。

作為Groovy Eclipse v2的開發(fā)者,Dzone對兩人進(jìn)行了專訪。

Dzone:你們剛剛宣布了Groovy Eclipse v2插件的alpha版本,Groovy / Eclipse社區(qū)對Groovy與Eclipse的更好結(jié)合期待已久,在這次的發(fā)布的版本中,有哪些特性值得他們的期待?

Andrew:對于這個(gè)Alpha版本,我們的目標(biāo)是:在Groovy與所有開發(fā)者期待的Java工具的特性中,能夠支持基本的編輯-保存-編譯-運(yùn)行周期。盡管如此,這還只是一個(gè)alpha版本,雖然它包含最終版本中的大部分主要功能,但仍會(huì)有很多新增、性能調(diào)試和測試

Andy:我們從AspectJ和它的工具支持學(xué)到了很多。這個(gè)問題不在于你的語言有多聰明,而在于IDE的功能,如果IDE中沒有漸進(jìn)式編譯、代碼協(xié)助和導(dǎo)航,那么依然影響應(yīng)用的編寫。這個(gè)Alpha版本也是支持另一種語言直接進(jìn)入Eclipse JDT的標(biāo)志性版本。

Dzone:你是如何進(jìn)入Eclipse插件開發(fā)領(lǐng)域的?

Andrew:早在我做PhD時(shí),我就有了擴(kuò)展型編輯器的想法。像Groovy這樣的語言可以通過使用元程序來擴(kuò)展語言,當(dāng)時(shí)我就在想能否通過元程序來擴(kuò)展編輯器。盡管我可以找到一些頭緒,然而我還是沒能真的找到可用的擴(kuò)展編輯器,這與JDT的局限性有關(guān)。JDT是高度優(yōu)化和優(yōu)秀結(jié)構(gòu)的框架,用來構(gòu)建Java語言的工具,而不是用來擴(kuò)展或者支持其他JVM語言。

畢業(yè)后我就業(yè)于SpringSource,剛好解決的是AJDT(AspectJ Development Tools)問題,在此期間我們遭遇到瓶頸,因?yàn)閷spectJ模型集成到JDT的Java模型中非常困難,這主要是因?yàn)镴DT缺乏對新編程元素的支持。***我們在Eclispe上使用AspectJ來讓JKT更具擴(kuò)展性。

不久之后,我被邀請到參與Groovy-Eclipse支持的開發(fā)。最初我認(rèn)為同樣的方法可行(即使用AspectJ來讓Eclispe更加兼容Groovy),結(jié)果發(fā)現(xiàn)每種語言都不同而且相應(yīng)的開發(fā)工具也不同。由于JDT要求的擴(kuò)展類型不符,因而使用AspectJ來支持Groovy不可行。后來我們發(fā)現(xiàn)也許存在一種方法將Groovy編輯器與Java編輯器整合起來。

Andy:當(dāng)時(shí)我就職于IBM從事于Java支持CICS主機(jī)的支持優(yōu)化工作,想尋找一個(gè)新的工作。我的同事當(dāng)時(shí)從一個(gè)會(huì)議上回來并告訴我們一個(gè)關(guān)于新項(xiàng)目的主意,他的名字是Adrian Colyer,現(xiàn)在是SpringSource的CTO,他發(fā)現(xiàn)了一種叫做面向Aspect編程(Aspect Oriented Programming)的東西,并試圖為這種新語言創(chuàng)建Eclispe工具。漸漸的,我們轉(zhuǎn)向于從編輯器端尋找解決方法,可以讓更多兼容Eclispe的開發(fā)者在UI端工作。幸虧有了AJDT項(xiàng)目,AspectJ作為一個(gè)改良過的Eclipse JDT編輯器,我從中學(xué)習(xí)到了很多。

最初我試驗(yàn)Groovy插件遇到了麻煩,于是回頭查看到底是因?yàn)槭裁矗cJochen Theodorou討論了架構(gòu)之后,我意識到這是Eclispe支持的一個(gè)很好的方法。有時(shí)候我們會(huì)花費(fèi)很多時(shí)間來復(fù)制一大段Eclipse JDT代碼只是為了改變其中的某幾行,或者編寫許多代碼來為AJDT中的某個(gè)特性創(chuàng)建支持,比如漸進(jìn)式編譯。通過讓Eclispe理解Groovy編輯器,可以實(shí)現(xiàn)這些功能。

Dzone:在開發(fā)Eclispe插件的過程中有哪些可以分享給開發(fā)者呢?

Andrew:為Eclispe開發(fā)插件很不容易,有許多東西要學(xué)習(xí),而且似乎有數(shù)不盡的API要了解。盡管如此,如果你知道如何正確地使用這個(gè)平臺(tái),那么仍然可以創(chuàng)建強(qiáng)大的應(yīng)用。

學(xué)習(xí)Eclispe平臺(tái)***的方法之一就是閱讀它的源代碼,這些代碼寫得很好而且標(biāo)注也很全。平臺(tái)本身就是***的客戶端,可以讓你獲悉它的API是如果運(yùn)行的。

另外一個(gè)建議是不要畏懼使用內(nèi)部API,它們通常是獲取一些未公開的服務(wù)的唯一方法,從長遠(yuǎn)來看使用它們可以讓你的代碼更加優(yōu)良。

Andy: 當(dāng)我們開始AJDT項(xiàng)目的時(shí)候,發(fā)現(xiàn)API的數(shù)量果然很驚人,同樣我也贊同***的學(xué)習(xí)方法是閱讀一些Eclispe代碼,尤其是那些跟你從事項(xiàng)目比較相關(guān)的代碼。

Dzone:你們是怎樣開始Groovy的開發(fā)的?

Andrew: 與其說我來自于Groovy,倒不如說我來自Eclispe。對于語言我已經(jīng)有了好多年的了解,但是直到工作在這個(gè)Eclispe插件項(xiàng)目我才找到真正使用語言的機(jī)會(huì)。這真是一種很棒的語言:Groovy代碼像Java代碼卻又有不同之處,初學(xué)者也因此可以很快地了解Groovy,然后漸漸發(fā)現(xiàn)它更多的性能包括:腳本、AST轉(zhuǎn)換以及閉包等。

Andy:最初為了學(xué)到Groovy,我想做一些Grails上的工作。然而當(dāng)我開始在Eclispe上從事Grails的時(shí)候,這不同于我從事Java開發(fā)的經(jīng)歷。我太習(xí)慣于一個(gè)IDE,于是考慮到我之前的工作經(jīng)歷我想我可以從這里做點(diǎn)文章,只要IDE工作了,我就可以回到Grails。

Dzone:在開發(fā)Groovy Eclipse v2插件的過程中***的挑戰(zhàn)是什么?

Andrew:回想起來將插件的UI組件移植到新的編輯器是個(gè)很恐怖的事情。最初的插件使用一種Java模型的復(fù)制品來表現(xiàn)Groovy代碼,我必須找出這些部分然后使用一個(gè)真正的Java模型取代它。當(dāng)然這也帶來了不少優(yōu)點(diǎn):***,可以為Groovy程序組件做Java掃描,由于我移除了原來代碼中許多不相干的部分,所以新的代碼更簡短了。

在開發(fā)中,可能我花費(fèi)時(shí)間最多的是創(chuàng)建可以生成升級網(wǎng)址的headless構(gòu)建腳本,這是一個(gè)很枯燥的任務(wù),需要自展新的編輯器來構(gòu)建自己。直到現(xiàn)在,我仍在花費(fèi)大量的時(shí)間來調(diào)試構(gòu)建腳本以產(chǎn)生***的結(jié)果。

在此我也有個(gè)建議:如果要為Eclispe構(gòu)建插件,使用其他平臺(tái)來編寫構(gòu)建腳本。

Andy: 迄今為止我只接手了一項(xiàng)任務(wù),而且這項(xiàng)任務(wù)特別有挑戰(zhàn)性:集成兩個(gè)完全不同的編輯器代碼基,同時(shí)還要確保漸進(jìn)式編譯功能正常運(yùn)行。這項(xiàng)任務(wù)需要在正式開始工作前做許多編程工作,這非常讓人不爽。

***次我使用原型,一直到開始構(gòu)建Grails的時(shí)候發(fā)現(xiàn)很多困難,難以繼續(xù)開發(fā)下去,所以我徹底放棄了這個(gè)方法,重寫代碼。幸運(yùn)的是,除了JDT編輯器,我還可以使用JDT測試插件并且用Groovy支持?jǐn)U展它們,所以重寫代碼我使用的是TDD方法。

Dzone:能否透露一下下一個(gè)版本的一些情況?

Andrew:你指的是V2的最終版吧?目前而言,主要的特性已經(jīng)應(yīng)用到了alpha版本中:漸進(jìn)式編譯、代碼瀏覽、內(nèi)容輔助(content assist)等。然而其中的某些特性尤其是代碼瀏覽和內(nèi)容輔助仍處于優(yōu)化過程中。

除了這些主要的特性,我們還希望能夠引進(jìn)其他編輯器的特性,如快速檢錯(cuò)、以及AST轉(zhuǎn)換的編輯器支持、一個(gè)功能更加完善的Groovy控制面板,也許還會(huì)加入一些Grails支持。

Andy: 從開發(fā)編輯器的角度來看,接下來到發(fā)布v2最終版的幾個(gè)月里,主要的工作是細(xì)節(jié)上的進(jìn)一步完善?;旧纤缘墓δ芤呀?jīng)在alpha版本里了,我們要做的就是確定它們在最終版里可用而且流暢,還要做的工作包括性能提升、存儲(chǔ)使用等。


當(dāng)前名稱:GroovyEclipse開發(fā)團(tuán)隊(duì)訪談:不要畏懼內(nèi)部API
網(wǎng)頁路徑:http://www.dlmjj.cn/article/coppjho.html