问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

豆瓣网的网站技术

发布网友 发布时间:2022-04-26 17:19

我来回答

1个回答

热心网友 时间:2022-05-02 21:35

记录分享、发现推荐、会友交流,这是豆瓣在用户网站使用指南中的对用户站内路径的指引,分别也可对应豆瓣导航的三大组成块:品味系统(读书、电影、音乐)、表达系统(我读、我看、我听)和交流系统(同城、小组、友邻)。
由豆瓣的诞生到这一路的发展,其技术一直被认为是网站成功的关键,有趣的是,豆瓣的技术门槛并不高,所以市场上的模仿者层出不穷,但复制豆瓣不代表就能成功,而在豆瓣之前又为什么没人想到类似的构思呢?
豆瓣全部使用python开发。网站后台的搜索引擎基于Twisted, GUI基于Quixote,还用到了cElementTree,MySQL和 PIL,除了这些,豆瓣基本是从头开发(由杨勃一个人四、五个月时间)完成,这是豆瓣技术的基础。纯粹的技术原理之外,相关豆瓣技术还有三个核心原则: 符合用户的习惯,简单的前台界面不代表系统的简单。事实上,正相反,在Web2.0的系统中,后台需要做更多的工作。一些表面看起来很简单的功能背后可能需要大量的程序和计算的支撑。
豆瓣就是最具代表性的例子。与大多数网站不同的是,最早开发的部分是一套推荐引擎,这是基于数学统计的计算模型。在用户点击过看过东西以后,这套模型可以自动分析出“与其口味最像的人”,并主动地推荐用户最有可能喜欢的书籍、音乐或者电影。
豆瓣是100%动态网站,没有一个静态的页面。我们完全可以将其视为一个个人管理书籍、音乐、影碟的工具,只是将工具放在网上了。很多人抄袭了豆瓣的模式和资源,但就如杨勃所言,仅仅抄袭一个网站的表面是没有价值的。“Google的界面更简单,但系统核心不在这里。豆瓣比Tag这些表面的东西多做了一步,采用了统计模型和一些程序算法,事实上,这才是豆瓣网的核心。”
Web越来越像一个计算平台。通过各种Web应用将计算机连接起来,比如需要相册时可以使用Flickr,需要地图时调用Google Map的Api。随着很多服务商逐渐将自己的服务开放出来,每个网站都可以视为一个软件服务提供商,相互之间的联系让系统越来越复杂,而这种系统的复杂并不会带来功能使用的繁琐。
强大的功能、简单的使用,这是WEB2.0应用的必然趋势。由豆瓣的应用,可以看出发现联系用户之间的关系,在后台建立导引用户功能的连接,针对数据量做好方便的存储和查询,这些就是网站技术的核心。 一个令人难以置信的事实是,豆瓣拥有十多万的注册用户,Alexa的流量排名在一千左右,很长的一段时间内却一直就只有一台八千块钱攒起来的服务器、一两个人的开发团队维护着。
为了适应这种规模,开发模式需要进行改变。这在很多Web2.0的网站中都有体现,有人称之为简单哲学。为了快速开发,系统设计也需要进行简化。杨勃说,“豆瓣网中间也做过一些变动,最初还是受原来做企业系统的影响,结构设计的太复杂,甚至还分了很多层。后来就简化了,因为太复杂之后就难以做快速开发。”
豆瓣采用的是敏捷开发的模式,这是一个快速开发、快速变化的体系,平均每两天就有新的功能出现。
“Web2.0网站是快速变化的,并不是把所有的功能都在开始阶段完全实现。”杨勃说,“这就要求系统构架的可扩展性要做很好。而且必须考虑将来规模可能带来的问题。豆瓣网一开始的架构设计就可支撑上百万用户。”同时,基于Web的开发省去了客户端分发、维护的成本,因此可以做到“永远的 BETA”、随时更新和升级服务。据说,豆瓣学习对象Flickr的升级是以小时为单位的。
Web2.0与用户的交互也是让网站快速完善的动力。网站运行之后,听取用户的反馈,指导下一步的应用开发。“豆瓣网有一个站务论坛,很多人经常发言提出自己的需求。”比如豆瓣刚开张时,由于每个人都可以自由创建小组或者参加小组,于是用户可能会同时参加几十个小组。但由于很多小组人数比较少,可能很长时间才会有人发言,于是大家就要求有一个功能,把所有小组的最新发言聚合在一起。杨勃很快实现了这个功能,事实也证明非常受欢迎。
杨勃认为,由于是小团队,工作模式就不能是一个经理带一帮人,而是大家都需要参与编程。而且,对综合学习能力的要求比较高。“因为技术变化很快,现在对任何技术再熟悉,经验再多,过几个月可能又出现了新的技术,因此最重要的是要能够跟踪最新的知识。而且由于最新的Web2.0模式和思想都是从国外发起的,所以程序员要具有在英文环境中直接沟通的能力,能够直接参与到国外开源项目中,而不是看已经翻译为中文的文档。”杨勃表示,自己学习Python 也是随豆瓣网开始的。“Python很适合敏捷开发,最初时候曾经尝试过使用Ruby,后来由于豆瓣网需要很多后台的程序,Python更适合编写一些后台模型程序,最终前台也统一为一种语言。”杨勃之前对MySQL了解很少,但在做豆瓣网的过程中,很快将知识弥补上来。“现在我们有几个数据库都可以做同步,有些内容我们还向开源社区进行了回馈。”
豆瓣选用了很多开源产品,杨勃认为:“用好开源产品是非常关键的。豆瓣的平台是基于Linux,数据库用的是MySQL,除了数据挖掘和搜索,其它都是在开源产品之上开发的。因为现在有很多非常成熟的产品和模块,没有必要从头做,只要有能力了解获得这方面的知识,都能够很快在别人的基础上开发自己的系统。”

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 “豆瓣评分”是什么? 豆瓣只有6.0,浅层分析《月上重火》为什么还是那么火? 豆瓣电影的评分真的很专业吗? 《专业技术职务任职资格证书》是什么? 就是平时所说的 “职称证” 吗 职称证书是什么?我要入职软件工程师的岗位 急急急急! 职称证与上岗证有什么不同呀? 职称证可以当上岗证用吗? qq管理员可以把成员设置管理员吗 qq设管理员怎么设置 qq怎么弄管理员 qq如何设置自己管理员 怎样才能设置QQ管理员 QQ怎样设置管理员。 企业交了附加税,请问计入哪个会计科目?明细科目又是什么? 主营业务税金及附加包括哪些明细科目? 营业税金及附加用设置下级科目吗 生姜红糖水早上空腹喝好还是不空腹 早上可以空腹喝红糖姜茶吗 生姜泡水早上可以空腹吗 维生素AD吃多了有什么坏处没? 经常听说伊可新维生素AD滴剂过量会中毒,这个量是个什么概念啊? 豆瓣和知乎的区别在哪里? 角与边的关系公式 三角形边角关系公式是什么? 怎么计算三角形的边与角的关系? 你发现角中边的数量与角的数量有什么关系吗? 角的个数与边的关系是什么? 如何计算角度和边 多边形的边角和公式? 求三角函数边与角所有公式以及关于圆的 三角形给了角,求边的比关系,例如36度,54度,90度,求他们边的关系式 和角公式 多边形的内角和与边数的关系式 多边形角度与边数的关系式是什么? 电脑上如何快速回到桌面? 怎么返回到主页面 怎么返回界面? 电脑360怎么新建网页,互不影响? 洗碗机商用有哪些牌子,哪家的比较好用? 商用洗碗机哪个比较好? 移动芝麻卡和花卡哪个好