【金子凼】eBay旧事,软件系统版变迁的故事

2021-11-30, 周二,阴晴
最近和过去的同事聊到我熟悉的eBay软件大系统的几个早期版本V2、V3和V4时,听到在eBay就职的同事说:“现在的新人都不知道什么叫V3。”

我忍不住分享我亲身经历过的eBay软件大系统V2、V3和V4这三个版本演变的过程中的小故事。

V2,eBay软件系统的第二版本,使用的开发语言是C++,开发平台是微软的可视觉平台(microsoft visual studio)。前端用户页面和中端商务逻辑是合在一起,C++源码在执行中端商务逻辑的同时编辑合成前端页面的HTML来实现用户页面在浏览器上的呈现。

HTML是一种采用预先定义标记的文本语言系统;因为以预先定义标记为基础,HTML文本通用于所有的网络浏览器,让网络浏览器能根据HTML文本呈现出有颜色、样式、和图片等内容丰富的网页。

HTML的DOM树是一个跨平台和独立于语言的接口,它将HTML文档视为树结构,其中每个节点都是表示文档一部分的对象。DOM代表一个具有逻辑树的文档。

2002年左右的网页都很简单,几乎没有动态内容,所以V2产生的eBay网页是基于很简单的HTML的DOM树。软件开发的重心是围绕着如何执行商务逻辑而不是如何呈现优美的网页,所以新产品的开发多是新商务逻辑的引入,用C++语言开发推送商务逻辑就非常快,在2001年和2002年在V2版本上,我做开发领队就推出了几个非常大的新产品,比如第一版买家结账流程商家图片捆绑包交叉销售功能商品待售功能,和一口价商品等。

V3, eBay软件系统的第三版本,使用的开发语言是Java,开发平台是IBM的WebSphere。前端用户页面和中端商务逻辑是彻底分开的,Java源码在执行中端商务逻辑时生成eBay内部的XML。

XML(可扩展标记语言)是一种以可存储、搜索和共享的文本,类似于HTML的标记语言,但XML会定义自己的标记而不是用预定义标记,所以XML可以有公司内部个性。

前端用户页面再通过XSL,一种样式表描述了如何将可扩展标记语言(XML)通过浏览器呈现,来实现的。

我曾听在2001年参与了C++和Java技术评比的牛人说eBay软件系统的开发语言从C++转化到java不是因为C++有技术缺陷,而是因为行政管理高层的决策。

2003年,eBay在把其商务核心系统从计算机语言C++全部转到Java语言之后,就外包出去了围绕商务核心系统延伸大型商家商品管理的开发,借以给软件系统的骨架设计师们更自由的空间在技术上有新突破。

记得2004年左右“XML骨架设计研讨”在eBay很红火,XML(可扩展标记语言)是一种类似于HTML但有自身定义标记的可存储、搜索和共享的通用文本。Tom专门告诉我:“这XML是很有前途的新生事物,你要积极参与。”我去听了几次研讨会后告诉Tom:“我觉的XML的文本太浪费储存空间了。我在硬件公司做软件开发时,因为硬件芯片本身的数据需要很大的空间,那里对软件所需空间很苛刻吝啬。”

2006年,我去Kijiji,eBay新近成立独立于eBay的开发团队。Kijiji有十个开发人员,绝多数是三十出头的壮丁,所以我们开发团队的技术强意识超前。我们承接优化了eBay从C++转换到java后鼎盛时期的强大开发系统,沿用eBay的数据库(DAL)接口、Java核心,但是完全脱离了XML/XSL的前端用户页面。V3的XML/XSL似乎没有达到预期的完美分割前端用户页面和中端网购商务逻辑的目的。eBay软件大系统才有了第四版本,V4,把前端用户页面和中端网购商务逻辑再次融合一起的。

V4, eBay软件系统的第四版本,使用的开发语言是Java。前端用户页面和中端商务逻辑再次合在一起,Java源码在执行中端商务逻辑的同时直接编辑改动前端用户页面HTML的DOM树。

2007年左右的网页开始含有大量的页面美工和页面动态,这时网络公司的网页大多变成庞大的HTML的DOM树了。

当听到V4试图把前端用户页面和中端商务逻辑再次合在一起后,我带着对V2的好印象和对V4的憧憬在2007年底从Kijiji转组到了V4核心开发组。我听组里的牛人说V4是以满足软件产品经理需求为中心的技术更新,旨在让eBay的新产品更快更廉价地推送到eBay网站。产品经理非常看重自己文字叙述的东西被软件开发人员快速地魔术般地变成动态的前端用户页面,因此V4的技术更新重点在如何更容易快速地实现前端用户页面和中端商务逻辑的交流。我印象中V4试图围绕着庞大的HTMLDOM树使巧劲,在添加商务逻辑的同时改动丰富庞大的网页。我在V4的核心开发组干了两年多,我感觉从V2到V4这个演变仿佛是从轻工业走向了重工业,因为V2产生的eBay网页是基于很简单的HTML的DOM树,而V4产生的eBay网页是基于包含丰富的静态和动态内容的非常庞大的HTML的DOM树。

eBay从2000年到2009年的技术更新经历了前端用户页面和中端商务逻辑的合久必分(V2第二版本到V3第三版本)和分久必合(V3第三版本到V4第四版本)的旅程。我觉得这些年eBay技术更新的始发力要么是高层管理人员的行政决策(V2升级到V3),要么是快速满足产品经理的商务需求(V3升级到V4),似乎缺乏来自开发人员深层的需求,所以缺乏强大超前的意识。这也许是eBay没能在2010年左右为网络技术更上一个台阶做出惊人贡献的原因之一。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>