频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

eBay的表示层架构与Eclipse

来源:天极网 作者:infoq 张龙 出处:巧巧读书 2008-04-18 进入讨论组

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

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

  “V4架构采取的方式是利用后端强类型的Java对象来表示前端使用的任何东西。你的页面使用图片吗?那么就有一个针对该图片的Java对象。如果你想删除该图片,其复杂程度和删除任何其他Java类一样。对于超链接、CSSJavaScript来说同样如此。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里面就是非常直接的了。

来自网络:http://www.infoq.com/cn/news/2008/04/ebay_eclipse

更多文章 更多内容请看Eclipse应用技术专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章