Web越来越像一个计算平台。通过各种Web应用将计算机连接起来,比如需要相册时可以使用Flickr,需要地图时调用Google Map的Api。随着很多服务商逐渐将自己的服务开放出来,每个网站都可以视为一个软件服务提供商,相互之间的联系让系统越来越复杂,而这种系统的复杂并不会带来功能使用的繁琐。
强大的功能、简单的使用,这是WEB2.0应用的必然趋势。由豆瓣的应用,可以看出发现联系用户之间的关系,在后台建立导引用户功能的连接,针对数据量做好方便的存储和查询,这些就是网站技术的核心。
(3)快速开发
一个令人难以置信的事实是,豆瓣拥有十多万的注册用户,Alexa的流量排名在一千左右,很长的一段时间内却一直就只有一台八千块钱攒起来的服务器、一两个人的开发团队维护着。
为了适应这种规模,开发模式需要进行改变。这在很多Web2.0的网站中都有所体现,有人称之为简单哲学。为了快速开发,系统设计也需要进行简化。杨勃说,“豆瓣网中间也做过一些变动,最初还是受原来做企业系统的影响,结构设计的太复杂,甚至还分了很多层。后来就简化了,因为太复杂之后就难以做快速开发。
豆瓣现在采用的是敏捷开发的模式,这是一个快速开发、快速变化的体系,平均每两天就有新的功能出现。
“Web2.0网站是快速变化的,并不是把所有的功能都在开始阶段完全实现。杨勃说,“这就要求系统构架的可扩展性要做的很好。而且必须考虑将来规模可能带来的问题。豆瓣网一开始的架构设计就可以支撑上百万用户。同时,基于Web的开发省去了客户端分发、维护的成本,因此可以做到“永远的BETA、随时更新和升级服务。据说,豆瓣学习对象Flickr的升级是以小时为单位的。
Web2.0与用户的交互也是让网站快速完善的动力。网站运行之后,听取用户的反馈,指导下一步的应用开发。“豆瓣网有一个站务论坛,很多人经常发言提出自己的需求。比如豆瓣刚开张时,由于每个人都可以自由创建小组或者参加小组,于是用户可能会同时参加几十个小组。但由于很多小组人数比较少,可能很长时间才会有人发言,于是大家就要求有一个功能,把所有小组的最新发言聚合在一起。杨勃很快实现了这个功能,事实也证明非常受欢迎。
杨勃认为,由于是小团队,工作模式就不能是一个经理带一帮人,而是大家都需要参与编程。而且,对综合学习能力的要求比较高。“因为技术变化很快,现在对任何技术再熟悉,经验再多,过几个月可能又出现了新的技术,因此最重要的是要能够跟踪最新的知识。而且由于最新的Web2.0模式和思想都是从国外发起的,所以程序员要具有在英文环境中直接沟通的能力,能够直接参与到国外的开源项目中,而不是看已经翻译为中文的文档。杨勃表示,自己学习Python也是随豆瓣网开始的。“Python很适合敏捷开发,最初的时候曾经尝试过使用Ruby,后来由于豆瓣网需要很多后台的程序,Python更适合编写一些后台模型程序,最终前台也统一为一种语言。杨勃之前对MySQL了解很少,但在做豆瓣网的过程中,很快将知识弥补上来。“现在我们有几个数据库都可以做同步,有些内容我们还向开源社区进行了回馈。
豆瓣选用了很多开源产品,杨勃认为:“用好开源产品是非常关键的。豆瓣的平台是基于Linux,数据库用的是MySQL,除了数据挖掘和搜索,其它都是在开源产品之上开发的。因为现在有很多非常成熟的产品和模块,没有必要从头做,只要有能力了解获得这方面的知识,都能够很快在别人的基础上开发自己的系统。
六、 人文豆瓣
初来豆瓣的人会发现这里的有效帖子特别多,评论长而且不乏精彩。使用豆瓣的人会发现这里能找到许多冷僻的书、电影、音乐,排在豆瓣排行榜上的大多是与市面畅销流行榜不一样的陌生面孔。豆瓣给人的感觉就是自成一格,评论形容其为“小众,那些在BLOG中自发传播豆瓣,乐于在豆瓣发布长篇评论的“豆粉们则将其称为“人文。
豆瓣是一个全动态页面的网站,通常网站编辑主导的运营方式在这里并不适用,但也不能说豆瓣是一个不做运营,由用户自娱自乐的网站。在豆瓣,运营是一个整体运营的概念,是建站理念、设计、产品、技术架构、文字说明等等所有构成豆瓣的元素共同合力作用出了一个充满人文精神的社区,书是这个社区最有粘合力的纽带。
如果当初杨勃选择电影或音乐作为豆瓣的起点,估计豆瓣的成功尚是未知之数。音乐和电影相对都比较大众,除了那些畅销书和热门书,通常书的阅读更加小众。豆瓣是一个典型的“满足小众需求的业务模式。在电影和音乐上,人们比较容易找到喜好相近的同伴,但对于书,特别是一本比较冷门的书,找到共同爱好者的机率就比较小。而书又有“圈子阅读的特性,一本共同喜好的书往往连结的就是两个志趣相投的人,而这批有共同书籍爱好的人基本都有交流的需求,这对“圈子(小组)的形成是天然的催化剂。