中成网站建设
    成都做网站,就选中成网站建设!专业四川网站建设,成都网站建设服务提供商
            企业宣传网站建设、电子商务网站建设、OA办公系统。联系电话:028-66165255
    资讯列表  
 四川免费建站,成都网站建设,全…
 2008年国内最常用的PHP+MySql免…
 电子商务公司如何提高网站转化…
 成都市新都区网站建设(从双楠到…
 网站上线前必做的30个检查
 国外新颖的电子商务网站模式
 通过百度指数分析网站关键词
 BBS备案因重叠审批被取消
 单字母与单数字 .COM/.CN 域名…
 开发Web 2.0的9条注意事项
 电子商务如何与企业ERP系统整合…
 关于 HTML5 应用现状与前景的思…
 W3C验证的是是非非
 工信部整治手机淫秽色情专项行…
 心态决定站长的命运 一个站长3…
    资讯详情  
分享插件开发经验--访Groovy Eclipse v2开发团队
发布时间:2009-08-18                  来源:成都网站建设--中成网建         【加入收藏】

Andrew Eisenberg曾是英属哥伦比亚大学的一名PhD开发人员,后来工作于SpringSource团队,并从事Groovy Eclipse工具支持方面的工作。他的主要开发理念是:通过与正确的IDE交互,将更具表达力。

Andy Clement则是SpringSource的高级软件工程师,他做许多与开发工具有关的工作( Groovy,AspectJ、Tasktop以及SpringSource工具套件)。过去的几年里Clement一直在领导AspectJ Eclipse项目。他还在Spring Framework 3 中创建了Spring Expression Language支持并为SpringSource dm Server写了不少代码。

作为Groovy Eclipse v2的开发者,Dzone对两人进行了专访。

Dzone:你们刚刚宣布了Groovy Eclipse v2插件的alpha版本,Groovy / Eclipse社区对Groovy与Eclipse的更好结合期待已久,在这次的发布的版本中,有哪些特性值得他们的期待?

Andrew:对于这个Alpha版本,我们的目标是:在Groovy与所有开发者期待的Java工具的特性中,能够支持基本的编辑-保存-编译-运行周期。尽管如此,这还只是一个alpha版本,虽然它包含最终版本中的大部分主要功能,但仍会有很多新增、性能调试和测试

Andy:我们从AspectJ和它的工具支持学到了很多。这个问题不在于你的语言有多聪明,而在于IDE的功能,如果IDE中没有渐进式编译、代码协助和导航,那么依然影响应用的编写。这个Alpha版本也是支持另一种语言直接进入Eclipse JDT的标志性版本。

Dzone:你是如何进入Eclipse插件开发领域的?

Andrew:早在我做PhD时,我就有了扩展型编辑器的想法。像Groovy这样的语言可以通过使用元程序来扩展语言,当时我就在想能否通过元程 序来扩展编辑器。尽管我可以找到一些头绪,然而我还是没能真的找到可用的扩展编辑器,这与JDT的局限性有关。JDT是高度优化和优秀结构的框架,用来构 建Java语言的工具,而不是用来扩展或者支持其他JVM语言。

毕业后我就业于SpringSource,刚好解决的是AJDT(AspectJ Development Tools)问题,在此期间我们遭遇到瓶颈,因为将AspectJ模型集成到JDT的Java模型中非常困难,这主要是因为JDT缺乏对新编程元素的支 持。最后我们在Eclispe上使用AspectJ来让JKT更具扩展性。

不久之后,我被邀请到参与Groovy-Eclipse支持的开发。最初我认为同样的方法可行(即使用AspectJ来让Eclispe更加兼容 Groovy),结果发现每种语言都不同而且相应的开发工具也不同。由于JDT要求的扩展类型不符,因而使用AspectJ来支持Groovy不可行。后 来我们发现也许存在一种方法将Groovy编辑器与Java编辑器整合起来。

Andy:当时我就职于IBM从事于Java支持CICS主机的支持优化工作,想寻找一个新的工作。我的同事当时从一个会议上回来并告诉我们一个关 于新项目的主意,他的名字是Adrian Colyer,现在是SpringSource的CTO,他发现了一种叫做面向Aspect编程(Aspect Oriented Programming)的东西,并试图为这种新语言创建Eclispe工具。渐渐的,我们转向于从编辑器端寻找解决方法,可以让更多兼容Eclispe 的开发者在UI端工作。幸亏有了AJDT项目,AspectJ作为一个改良过的Eclipse JDT编辑器,我从中学习到了很多。

最初我试验Groovy插件遇到了麻烦,于是回头查看到底是因为什么,与Jochen Theodorou讨论了架构之后,我意识到这是Eclispe支持的一个很好的方法。有时候我们会花费很多时间来复制一大段Eclipse JDT代码只是为了改变其中的某几行,或者编写许多代码来为AJDT中的某个特性创建支持,比如渐进式编译。通过让Eclispe理解Groovy编辑 器,可以实现这些功能。

Dzone:在开发Eclispe插件的过程中有哪些可以分享给开发者呢?

Andrew:为Eclispe开发插件很不容易,有许多东西要学习,而且似乎有数不尽的API要了解。尽管如此,如果你知道如何正确地使用这个平台,那么仍然可以创建强大的应用。

学习Eclispe平台最好的方法之一就是阅读它的源代码,这些代码写得很好而且标注也很全。平台本身就是最好的客户端,可以让你获悉它的API是如果运行的。

另外一个建议是不要畏惧使用内部API,它们通常是获取一些未公开的服务的唯一方法,从长远来看使用它们可以让你的代码更加优良。

Andy: 当我们开始AJDT项目的时候,发现API的数量果然很惊人,同样我也赞同最好的学习方法是阅读一些Eclispe代码,尤其是那些跟你从事项目比较相关的代码。

Dzone:你们是怎样开始Groovy的开发的?

Andrew: 与其说我来自于Groovy,倒不如说我来自Eclispe。对于语言我已经有了好多年的了解,但是直到工作在这个Eclispe插件项目我才找到真正使 用语言的机会。这真是一种很棒的语言:Groovy代码像Java代码却又有不同之处,初学者也因此可以很快地了解Groovy,然后渐渐发现它更多的性 能包括:脚本、AST转换以及闭包等。

Andy:最初为了学到Groovy,我想做一些Grails上的工作。然而当我开始在Eclispe上从事Grails的时候,这不同于我从事 Java开发的经历。我太习惯于一个IDE,于是考虑到我之前的工作经历我想我可以从这里做点文章,只要IDE工作了,我就可以回到Grails。

Dzone:在开发Groovy Eclipse v2插件的过程中最大的挑战是什么?

Andrew:回想起来将插件的UI组件移植到新的编辑器是个很恐怖的事情。最初的插件使用一种Java模型的复制品来表现Groovy代码,我必 须找出这些部分然后使用一个真正的Java模型取代它。当然这也带来了不少优点:第一,可以为Groovy程序组件做Java扫描,由于我移除了原来代码 中许多不相干的部分,所以新的代码更简短了。

在开发中,可能我花费时间最多的是创建可以生成升级网址的headless构建脚本,这是一个很枯燥的任务,需要自展新的编辑器来构建自己。直到现在,我仍在花费大量的时间来调试构建脚本以产生最好的结果。

在此我也有个建议:如果要为Eclispe构建插件,使用其他平台来编写构建脚本。

Andy: 迄今为止我只接手了一项任务,而且这项任务特别有挑战性:集成两个完全不同的编辑器代码基,同时还要确保渐进式编译功能正常运行。这项任务需要在正式开始工作前做许多编程工作,这非常让人不爽。

第一次我使用原型,一直到开始构建Grails的时候发现很多困难,难以继续开发下去,所以我彻底放弃了这个方法,重写代码。幸运的是,除了JDT编辑器,我还可以使用JDT测试插件并且用Groovy支持扩展它们,所以重写代码我使用的是TDD方法。

Dzone:能否透露一下下一个版本的一些情况?

Andrew:你指的是V2的最终版吧?目前而言,主要的特性已经应用到了alpha版本中:渐进式编译、代码浏览、内容辅助(content assist)等。然而其中的某些特性尤其是代码浏览和内容辅助仍处于优化过程中。

除了这些主要的特性,我们还希望能够引进其他编辑器的特性,如快速检错、以及AST转换的编辑器支持、一个功能更加完善的Groovy控制面板,也许还会加入一些Grails支持。

Andy: 从开发编辑器的角度来看,接下来到发布v2最终版的几个月里,主要的工作是细节上的进一步完善。基本上所以的功能已经在alpha版本里了,我们要做的就是确定它们在最终版里可用而且流畅,还要做的工作包括性能提升、存储使用等。

 

 

 
上一篇:XML+正则表达式+反射+脚本引擎,实现简单的业务可配
下一篇:Windows 7代码包发布 拒绝IE 6成时尚
【打印】    【关闭】    【字体变小】    【字体变大】

友情链接

首页  |  建站学院  |  网站建设  |  成功案例  |  业务体系  |  软件定制  |  解决方案  |  联系我们  |  免责声明
中成网建公司地址:四川省成都市双楠双安东巷1号18-3-5 电话:028-6616 5255 版权所有 @ 中成网建
成都网站建设网址:www.csccd.net www.csccd.cn 邮箱:web#csccd.net
信息产业部备案号:蜀ICP备08106559号