失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 豆瓣网的网站技术

豆瓣网的网站技术

时间:2019-02-02 10:33:59

相关推荐

豆瓣网的网站技术

记录分享、发现推荐、会友交流,这是豆瓣在用户网站使用指南中的对用户站内路径的指引,分别也可对应豆瓣导航的三大组成块:品味系统(读书、**、音乐)、表达系统(我读、我看、我听)和交流系统(同城、小组、友邻)。

由豆瓣的诞生到这一路的发展,其技术一直被认为是网站成功的关键,有趣的是,豆瓣的技术门槛并不高,所以市场上的模仿者层出不穷,但复制豆瓣不代表就能成功,而在豆瓣之前又为什么没人想到类似的构思呢?

豆瓣全部使用python开发。网站后台的搜索引擎基于Twisted,GUI基于Quixote,还用到了cElementTree,MySQL和PIL,除了这些,豆瓣基本是从头开发(由杨勃一个人四、五个月时间)完成,这是豆瓣技术的基础。纯粹的技术原理之外,相关豆瓣技术还有三个核心原则:符合用户的习惯,简单的前台界面不代表系统的简单。事实上,正相反,在Web2.0的系统中,后台需要做更多的工作。一些表面看起来很简单的功能背后可能需要大量的程序和计算的支撑。

豆瓣就是最具代表性的例子。与大多数网站不同的是,最早开发的部分是一套推荐引擎,这是基于数学统计的计算模型。在用户点击过看过东西以后,这套模型可以自动分析出“与其口味最像的人”,并主动地推荐用户最有可能喜欢的书籍、音乐或者**。

豆瓣是100%动态网站,没有一个静态的页面。我们完全可以将其视为一个个人管理书籍、音乐、影碟的工具,只是将工具放在网上了。很多人抄袭了豆瓣的模式和资源,但就如杨勃所言,仅仅抄袭一个网站的表面是没有价值的。“Google的界面更简单,但系统核心不在这里。豆瓣比Tag这些表面的东西多做了一步,采用了统计模型和一些程序算法,事实上,这才是豆瓣网的核心。”

Web越来越像一个计算平台。通过各种Web应用将计算机连接起来,比如需要相册时可以使用Flickr,需要地图时调用GoogleMap的Api。随着很多服务商逐渐将自己的服务开放出来,每个网站都可以视为一个软件服务提供商,相互之间的联系让系统越来越复杂,而这种系统的复杂并不会带来功能使用的繁琐。

强大的功能、简单的使用,这是WEB2.0应用的必然趋势。由豆瓣的应用,可以看出发现联系用户之间的关系,在后台建立导引用户功能的连接,针对数据量做好方便的存储和查询,这些就是网站技术的核心。一个令人难以置信的事实是,豆瓣拥有十多万的注册用户,Alexa的流量排名在一千左右,很长的一段时间内却一直就只有一台八千块钱攒起来的服务器、一两个人的开发团队维护着。

为了适应这种规模,开发模式需要进行改变。这在很多Web2.0的网站中都有体现,有人称之为简单哲学。为了快速开发,系统设计也需要进行简化。杨勃说,“豆瓣网中间也做过一些变动,最初还是受原来做企业系统的影响,结构设计的太复杂,甚至还分了很多层。后来就简化了,因为太复杂之后就难以做快速开发。”

豆瓣采用的是敏捷开发的模式,这是一个快速开发、快速变化的体系,平均每两天就有新的功能出现。

“Web2.0网站是快速变化的,并不是把所有的功能都在开始阶段完全实现。”杨勃说,“这就要求系统构架的可扩展性要做很好。而且必须考虑将来规模可能带来的问题。豆瓣网一开始的架构设计就可支撑上百万用户。”同时,基于Web的开发省去了客户端分发、维护的成本,因此可以做到“永远的BETA”、随时更新和升级服务。据说,豆瓣学习对象Flickr的升级是以小时为单位的。

Web2.0与用户的交互也是让网站快速完善的动力。网站运行之后,听取用户的反馈,指导下一步的应用开发。“豆瓣网有一个站务论坛,很多人经常发言提出自己的需求。”比如豆瓣刚开张时,由于每个人都可以自由创建小组或者参加小组,于是用户可能会同时参加几十个小组。但由于很多小组人数比较少,可能很长时间才会有人发言,于是大家就要求有一个功能,把所有小组的最新发言聚合在一起。杨勃很快实现了这个功能,事实也证明非常受欢迎。

杨勃认为,由于是小团队,工作模式就不能是一个经理带一帮人,而是大家都需要参与编程。而且,对综合学习能力的要求比较高。“因为技术变化很快,现在对任何技术再熟悉,经验再多,过几个月可能又出现了新的技术,因此最重要的是要能够跟踪最新的知识。而且由于最新的Web2.0模式和思想都是从国外发起的,所以程序员要具有在英文环境中直接沟通的能力,能够直接参与到国外开源项目中,而不是看已经翻译为中文的文档。”杨勃表示,自己学习Python也是随豆瓣网开始的。“Python很适合敏捷开发,最初时候曾经尝试过使用Ruby,后来由于豆瓣网需要很多后台的程序,Python更适合编写一些后台模型程序,最终前台也统一为一种语言。”杨勃之前对MySQL了解很少,但在做豆瓣网的过程中,很快将知识弥补上来。“现在我们有几个数据库都可以做同步,有些内容我们还向开源社区进行了回馈。”

豆瓣选用了很多开源产品,杨勃认为:“用好开源产品是非常关键的。豆瓣的平台是基于Linux,数据库用的是MySQL,除了数据挖掘和搜索,其它都是在开源产品之上开发的。因为现在有很多非常成熟的产品和模块,没有必要从头做,只要有能力了解获得这方面的知识,都能够很快在别人的基础上开发自己的系统。”

为什么豆瓣被称为“佛系”互联网公司?

豆瓣会控制水军刷分。

为了避免刷分,豆瓣在不断优化算法,比如判断账号的活跃程度、打分行为、评分是否客观等变量,普通的水军往往是会忽略这些权重的提升点。但是很多片方可能并不清楚这些机制,盲目的找一些水军去打分、评论,全然不顾豆瓣机制,只想着达成数量,最后水军赚到了钱,片方做了冤大头都不知道,很多钱都打了水漂,从而保证豆瓣的权威。

豆瓣的后台技术

符合用户的习惯,简单的前台界面,不代表系统的简单。事实上,正相反,在Web2.0的系统中,后台需要做更多的工作。一些表面看起来很简单的功能,背后可能需要大量的程序和计算的支撑。

豆瓣就是最具代表性的例子。与大多数网站不同的是,最早开发的部分是一套推荐引擎,这是基于数学统计的计算模型。在用户点击过、看过东西以后,这套模型可以自动分析出“与其口味最像的人”,并主动地推荐用户最有可能喜欢的书籍、音乐或者**。

因为豆瓣的商业性并不是很强,一般人开公司目的就是为了盈利,当然除了那些公益基金。可豆瓣这个作为性质是盈利性的互联网公司却不太看重盈利,那么在其行业中就显得尤为佛系。

我想使用过豆瓣的人都知道,豆瓣公司貌似非常随缘,并且它的步调很缓慢,好像跟信息大爆炸的时代有点格格不符,如今信息速度变化如此之快,许多互联网公司都靠着与时俱进和商业发展的多样性创新性,在互联网行业占有一席之地,而豆瓣公司却像千年老王八一样一动不动。但是我们却无法忽视它的存在,可能正是由于它商业性质不强,所以并不会做出一些有违本心的事情,所以豆瓣在影迷心中有非常高的权威性。

而多半之所以被称为佛系,公司又有以下两个原因。

一豆瓣公司并不看重大众给豆瓣带来的收益

我们一般都是在看过**之后,利用豆瓣来对看过的**进行打分和进行影评,而豆瓣就起到给用户一个发表自己言论的平台作用,并且在豆瓣上并不只针对**进行评分,还有读过的书,或者说是听过的音乐都可以进行评论和收藏,并且这种评论机制是免费开放的,所以其实豆瓣在这方面并没有多大的盈利机会。

二豆瓣仍然保持自己本身的独立客观性

豆瓣之所以在影迷心中有很高的权威性,就是他在互联网行业中始终保持自己独立的客观性,现在豆瓣的**音乐以及书的评分机制影响力越来越大,那么就带来了很多流量以及关注要知道,在互联网行业里面能够忍得住诱惑,而保持自己本来的态度,本身就是一件很难得的事情,尤其他能够为了初心而不采用一系列商业手段对其进行推广就更为难得。在豆瓣读书,安全作出保障,要防止那些水军影响其豆瓣本来的氛围。所以久而久之,用户却觉得豆瓣越来越佛系了。

如果觉得《豆瓣网的网站技术》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。