BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

eBay的表示层架构与Eclipse

| 作者 Charles Humble 关注 905 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2008年4月18日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

eBay权威人士Michael Galpin在IBM开发者网站上发表了一篇包含两部分的文章,讲述了eBay广泛使用Eclipse插件和代码生成器以改善开发者体验和代码质量。

第一篇文章讲述了eBay从之前基于Perl的表示层架构迁移到现在的Java版本——即我们熟知的V4——的进化过程: 

 “V4架构采取的方式是利用后端强类型的Java对象来表示前端使用的任何东西。你的页面使用图片吗?那么就有一个针对该图片的Java对象。如果你想删除该图片,其复杂程度和删除任何其他Java类一样。对于超链接、CSS及JavaScript来说同样如此。V4没有使用servlets或者JSPs来创建HTML。相反,实际的HTML DOM是以Java语言表示的,因此你可以在服务器端把CSS和JavaScript捆绑在一起。

其中最困难的地方——内容——怎么样呢?V4的内容系统是独特且强大的。它使用它自己的基于XML的语言来创建内容契约。单词契约的选择是有意图的。契约定义了创建变化的内容单元所需要的数据。例如,一个特定的单元在英语中可能需要一个整数和一个字符串(如“Raymond has 4 cars”),但是在另一门语言中却需要两个整数和一个字符串。对于性别和基数来说更是如此。契约用XML来定义这些内容。接下来由一个特定的应用/页面/组件所支持的每种语言分别去实现契约。当然,它必须要转化为Java中的强类型对象,这样当使用时就会提供所有的动态数据(就像上面提到的“Raymond”和“4”)。因为万物皆是强类型的Java对象,所以它们就要遵循编译的规则。如果应用开发者没有在其Java代码中提供那两个参数,那么代码就无法通过编译。

这篇文章继续讲述了eBay是如何实现构成应用的不同语言的Java表示。JavaScript作为原生代码并且由Java代理,一开始会使用CSS文件,但是随后就被Java的class文件替换掉了,该class文件在运行时会产生出CSS,内容契约XML也被转化为Java,凡此种种。这种eBay模式的核心点在于使用Eclipse代码生成器以进行这些繁琐的转换。eBay已经开发出了一个Eclipse插件以将每种源文件(JavaScript、CSS、XML)转化为其相应的Java表示,并且还提供一个自定义编辑器来处理气特有的XML格式。这篇文章以一个示例结束:针对V4组件运行一个eBay实例,并在Eclipse中直接打开该组件。

第二篇文章讲述了eBay如何联合使用XML文件格式和另一个私有插件以管理其项目依赖。XML文件插件使得Eclipse产生必要的项目和classpath文件,根据其XML契约,第二个插件提供了XML编辑器。

eBay不但开发自己的Eclipse插件,他们还使用很多第三方插件。不得不提的两个插件是进行源代码控制的Rational ClearCase插件以及静态代码分析工具FindBugs,eBay使用FindBugs来部分验收其所有源代码。

这其中一个重要方面就是Eclipse平台的开源本性。既然源码是开放的,对于eBay来说将其私有的插件集成到IDE里面就是非常直接的了。

查看英文原文:eBay's Presentation Architecture and Eclipse
译者简介:张龙,同济大学软件工程硕士,现就职于理光软件研究所。主要从事文档工作流和办公自动化解决方案的研发工作。热衷于Java轻量级框架的研究,对敏捷方法很感兴趣。曾有若干年的J2EE培训讲师经历。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT