2021-01-04 16:51:09 阅读(212)
python开发了所有豆瓣。网站后台的搜索引擎基于Twisted,GUI基于Quixote,celementtreee、MySQL和PIL,这是豆瓣技术的基础。除了纯粹的技术原理外,豆瓣技术还有三个核心原则:以用户为中心、简单的前台和复杂的后台,以及快速开发。以用户为中心的Web2.0改变了一些产品特性的优先级。原来产品会把功能放在第一位,可用性的优先级会放在后面。现在,要给普通用户使用,必须以用户为中心,必须从易用的角度出发。可以说,Ajax技术的流行首先解决了一个概念问题。虽然此时点击量无法增加,但它可以给用户带来更方便的网络访问。现在的网站开发不是为了追求点击量,而是为用户提供满足他们需求的功能。杨波认为,对于大多数人来说,书籍、音乐和电影有很多选择,所以豆瓣的方向是初步确定的,也就是说,需要找到和分享。每个人的口味都不一样,分享后就会产生口碑传递。“所以,一开始做豆瓣不是为了做网站,而是为了满足人们的需求。如果对用户没用,那就远远不够新鲜了。“现在同一类型的网站,技术水平对网站外观的影响不是特别明显,但只需要使用网站,就会理解很多差距。原因是创新来自于找到需求,细节来自于理解需求。 为了最大限度地满足用户的习惯,简单的前台界面并不代表系统的简单性。相反,在Web2.0系统中,后台需要做更多的工作。在一些看似简单的功能背后,需要大量的程序和计算支持。豆瓣是基于数学统计的推荐引擎,是最具代表性的例子。与大多数网站不同,最早开发的部分是基于数学统计的计算模型的推荐引擎。用户点击浏览后,该模型可以自动分析“兴趣相投的人”,并积极推荐用户最有可能喜欢的书籍、音乐或电影。豆瓣是一个功能强大但使用简单的管理工具的100%动态网站,没有静态页面。我们可以把它看作是一个个人管理书籍、音乐和光盘的工具,只是把它放在网上。如今,许多网站抄袭了豆瓣的模式和资源,但仅仅抄袭一个网站的表面是毫无价值的。Web越来越像一个计算平台。计算机可以通过各种Web应用连接起来,比如Flickr可以在需要相册的时候使用,GoogleMap的Api可以在需要地图的时候使用。随着许多服务提供商逐渐开放他们的服务,每个网站都可以被视为一个软件服务提供商,它们之间的联系使系统变得越来越复杂,而这个系统的复杂性不会带来繁琐的功能使用。Web2.0应用的必然趋势是功能强大,使用简单。通过豆瓣的应用,我们可以看到联系用户之间的关系,在后台建立引导用户功能的连接,方便地存储和查询数据量,这是网站技术的核心。 很难想象豆瓣有5000万注册用户,Alexa的流量排名在1000左右,但长期以来只有一台8000元的服务器和一两个人的开发团队维护。为了适应这一规模,需要改变开发模式。这体现在很多Web2.0网站上,有人称之为简单哲学。为了快速发展,系统设计也需要简化。杨勃说:“豆瓣网中间也做了一些变化,一开始还是受原企业制度的影响,结构设计过于复杂,甚至分为许多层次。后来简化了,因为太复杂后很难快速发展。“豆瓣现在采用了快速发展的模式,这是一个快速发展和快速变化的系统,平均每两天就会出现新的功能。Web2系统架构延展性强,更新升级快.0网站变化迅速,并非所有功能都在初始阶段得到充分实现。“这就要求系统结构的可扩展性做得很好,”杨勃说。未来规模可能带来的问题必须考虑。豆瓣网最初的架构设计可以支持数百万用户。同时,基于Web的开发节省了客户分发和维护的成本,因此可以实现“永恒的BETA”、随时更新升级服务。据说豆瓣学习对象Flickr的升级以小时为单位。经常与用户互动的Web2.0和用户互动也是网站快速完善的动力。网站运行后,听取用户反馈,指导下一步的应用开发。“豆瓣网有一个站务论坛,很多人经常发言提出自己的需求。比如豆瓣刚开张的时候,用户可能会同时参加几十个小组,因为每个人都可以自由创建小组或者参加小组。然而,由于许多小组的数量相对较少,可能需要很长时间才能有人发言,所以我们需要一个功能来聚集所有小组的最新发言。事实证明,杨勃很快就实现了这一功能,非常受欢迎。杨波认为,由于他是一个小团队,他的工作模式不能是一个经理和一群人,但每个人都需要参与编程。而且,对综合学习能力的要求相对较高。“由于技术变化迅速,无论你现在对任何技术有多熟悉和经验,新技术可能会在几个月后再次出现,所以最重要的是能够跟踪最新的知识。此外,由于最新的Web2.0模式和想法是从国外发起的,程序员应该有能力在英语环境中直接沟通,直接参与国外开源项目,而不是阅读翻译成中文的文档。杨勃说,自己学习Python也是从豆瓣网开始的。“Python非常适合快速开发。起初,我试图使用Ruby。后来,由于豆瓣网络需要大量的后台程序,Python更适合编写一些后台模型程序。最后,前台统一为一种语言。杨勃以前对MySQL知之甚少,但在做豆瓣网的过程中,很快就弥补了知识。“现在我们有几个数据库可以同步,我们也回馈了开源社区的一些内容。“豆瓣选择了许多开源产品,杨勃认为:“充分利用开源产品至关重要。以Linux为基础的豆瓣平台,数据库采用MySQL,除数据挖掘和搜索外,其它都是在开源产品上开发的。因为现在有很多非常成熟的产品和模块,所以没有必要从头开始。只要你有能力理解和获得这些知识,你就可以在他人的基础上快速开发自己的系统。“豆瓣是一个使用Python开发的网站。在开发框架方面,豆瓣主要使用Quixote(轻量级PythonWeb框架简单高效,代码简单);Web服务主要用于后台操作.py(web.Python的Web框架也是Python,简单强大)。豆瓣网可分为两部分:一部分是前端网络,即用户在浏览器访问时触发一系列操作,从数据库中提取数据,渲染成HTML页面反馈给用户,这是前端;另一部分是后端,在豆瓣有一个强大的数据挖掘团队,每天分析、组合用户生成的数据,然后生成用户推荐,然后放在数据库中,这些数据将在前端实时捕获并显示给用户。豆瓣(架构)设计主要用于WEB的一端:前端是nginx和lighttpd,中间是Quixote的Web框架,后面是MySQL和我们自己开发的Doubandb。豆瓣(架构)设计主要用于WEB的一端:前端是nginx和lighttpd,中间是Quixote的Web框架,后面是MySQL和我们自己开发的DoubandB。除了Quixote,这些都是流行的尖端技术。Quixote稍微老一点,如果要重新设计,可能会在这方面做一些考虑。比如Python社区Djangoo、Pylons等都可以考虑,所以在豆瓣内部,我们通常使用web.py,一个很轻的Web框架来做,也是一个很好的选择,它可能需要自己做更多的事情。豆瓣还没有达到数据库分片的程度。根据功能分区,最常见的方法是。我们将数据表分为几个独立的库,现在总共有四个库。每个表都是库的一部分,每个库都有两个主副。这样可以减轻数据库的压力。当然,这是目前的计划。在未来,表的行数将增加。在达到一定程度后,必须进行水平分割,这是肯定的。然后在我们目前的技术方面,在操作数据库之前,有一种方法可以获得数据库的游标。这种方法会做一切,我们会从这种方法中判断在哪里取东西。这个架构已经在那里了,但还没有这样做。
以上就是关于作为国内以Python驱动的知名网站之一,豆瓣的技术理念和模式是什么?的相关介绍,更多作为国内以Python驱动的知名网站之一,豆瓣的技术理念和模式是什么?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对作为国内以Python驱动的知名网站之一,豆瓣的技术理念和模式是什么?有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一