(连载)90天创造奇迹:Digg与时间赛跑,打造Google Reader替代品(四)

36氪  •  扫码分享

编者按:前文讲述了Digg Reader的产生并非偶然。然而要打造一款Google Reader的替代品并非易事。甚至Google Reader之父Chris Wetherell也为Digg团队感到担心。此为连载第四篇:所以你们要打造一款阅读器?(前文详情:连载一,连载二,连载三)

“我很欣赏他们的抱负,这是一份苦差事。要完成好将面临难以想象的挑战。”Chris Wetherell说。许多年前,Wetherell建立了Google Reader——被枪毙掉的产品中最受欢迎且最实用的产品之一。当谈到Digg团队面临什么时,他摇着头,发出了一声常常的叹息:“此时此刻,我为他们感到同情和恐惧。”

RSS阅读从技术上来说极度复杂。对于起步者来说,有一大堆的信息要抓取和整合。从博客到如《纽约时报》这类的主流出版物,再到日历订阅和种类繁多的个人服务。Digg必须获取所有信息,并很快地反馈给你。

“数据库的之大是一个难以想象的挑战,”Wetherell解释说,“互联网如此庞大,但它也只是一堆网页的集合。但RSS阅读数据存储潜在的大小可能几倍于互联网。”举个例子,一个网站可能有很多的订阅源,其中有一些是在搜索问题或标签时找到的订阅源,所有这些数据都要被收集到Digg的服务器中。Wetherell说:“存储所有必要信息并将它们传送至一个世界级的RSS阅读器中,所花费的代价是巨大的。希望他们在银行里有一些积蓄。”

下面所说的可能是一种典型的阅读体验。比如说,你想要订阅你的Flickr中所有标签为“食物”的照片。那是Digg从API调用中抓取的一个特定照片子集。每次你打开Digg Reader,它就要为你载入专属于你的数据。当越来越多的用户参与进来时,这需要非常强大而快速的计算能力。而这只是一个款阅读器要解决的众多问题之一。

当某位用户加载Digg Reader时,Digg的服务器就要访问这位用户订阅的所有订阅源,找到用户上次访问之后加入的文章,然后将它们按逆向时间顺序整合起来。有两种方式来传递这些信息:Digg等待用户发送载入请求(拉),或不断向他们推送新的文章(推)。后者速度更快,但将给服务器造成更大的负担。(目前,Digg打算使用前者,最终期望能实现两者的混合使用。)

与此同时,阅读器要做许多的运算。在它推送文章之前,阅读器必须计算出哪些文章你已经读过,而哪些你还没有读过,并将这个信息展现出来。Digg希望你对文章采取一些行动(至少是让你能够采取行动),因此它还必须把与每篇文章相关的数据记录下来:你把它分享到Twitter或Facebook上了吗?你Digg它了吗?你是否把它发送到Pocket或Instapaper以供日后阅读?如果答案是Yes,它就需要通过相关的图标显示这个信息。——这或许没什么好说的,但这些信息是专属于你的,因此对每一位用户、每一篇文章,它都必须一次又一次地进行运算。

这还只是Digg团队要在三个月内解决的问题中最表层的一些,还有许许多多琐碎繁琐的问题等待着他们:数不清的对用户交互方式如何进行处理的小决策。比如,当人们思考如何“简单”移植现有产品时,大部分人从未考虑过的API缓存。而且所有交互处理都必须在非常短的时间内进行。对于一款RSS阅读器,它应该做到即时响应。

“速度快,利弊兼具。”Digg CTO Michael Young 解释说。他阐述的是对前端软件和后台数据的影响。“阅读器载入迅速、及时,这样我们就能第一时间获取到刚发布的文章。”这需要大量的工作,而时间是最关键的问题。“RSS就很痛苦了。就拿《连线》的RSS来所说,我必须反复地检查。”(就在这时,Young开始模仿起计算机访问服务器了)“有新的文章吗?有新的文章吗?有新的文章吗?如果频率很高的话,比如,每15分钟进行一次,一些网站就会阻止我的访问了。”更多情况下,每分钟就要进行一次。

从根本上说,这是一个残缺的体系。订阅者想要在新文章上线的第一时间就在RSS阅读器上看到它们。然而,除非发布者采取一种推送更新提示的方式,否则除了通过现阶段每15分钟才进行一次缓慢爬取订阅源的形式,Digg阅读器是不可能知道的。有一些网站几个星期才发布一次,每15分钟进行一次的检测就足够了。但一些对于喷涌而出的新闻和服务讯息,如实时交通信息,这样的更新速度就实在太慢了。想像这样一个场景:Digg在3:00爬取一次《连线》的订阅,但《连线》在3:01发出了一篇新文章,而我又恰好在3:14分载入了Digg Reader。那么我就无法看到这篇新文章,即使在我载入之前相当一段时间,它已经发布了。

“想在Google之外解决这个问题,是让我陷入同情而紧张的思考中而忍不住摇头的巨大挑战之一。”Wetherell说,“Google Reader成功的原因之一是,它背后有世界上最棒的爬取系统做支撑。”

每个在互联网上发布信息的人都希望他的信息出现在Google上,因为Google就是流量的象征,而流量又是金钱的象征。发布者希望Google机器人尽可能多地访问他们的网站。但他们不一定希望几十个RSS阅读器一次又一次地检查他们的系统。太过频繁地访问,他们可能会处罚你,阻止你的机器人。失去了机器人,你也将失去你的读者。

当我于五月初拜访Digg时,白板上写满了待办事项。中间散落了一些如“国安局窃听”(现在看来,很有先见之明)和“Windows Phone软件”(我问起这个时,他们只是笑笑)的笑话。然而5月31日时,大部分的待办事项已经完成,而且团队已经准备好把Digg Reader从测试服务器转移到Digg.com了。几乎与此同时,整个网站崩溃了。当Young意识到迎接所有访问Digg用户的是503 error时,他头都大了。天啊!

本以为问题重大,结果是,他们只重启一下路由器就解决了。

(未完待续……)

VIA: wired.com

随意打赏

提交建议
微信扫一扫,分享给好友吧。