InfoQ

新闻

eBay的表示层架构与Eclipse

作者 Charles Humble 译者 张龙 发布于 2008年4月17日 上午2时53分

社区
Java
主题
工件和工具,
开放源代码
标签
eBay,
Eclipse

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

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。