一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

站長之家,中國草根站長新聞、建站經(jīng)驗、素材資源交流平臺!
分類導航

站長新聞|網(wǎng)站運營|建站經(jīng)驗|網(wǎng)站優(yōu)化|站長資源|站長源碼|

服務器之家 - 站長之家 - 網(wǎng)站運營 - 淺析豆瓣網(wǎng)站運營的主要技術模式

淺析豆瓣網(wǎng)站運營的主要技術模式

2020-06-19 16:14站長之家 網(wǎng)站運營

這篇文章主要介紹了豆瓣網(wǎng)站運營的主要技術模式,作為國內(nèi)以Python驅(qū)動的知名網(wǎng)站之一,本文介紹了豆瓣的一些技術理念,需要的朋友可以參考下

豆瓣全部使用python開發(fā)。網(wǎng)站后臺的搜索引擎基于Twisted, GUI基于Quixote,還用到了cElementTree, MySQL和 PIL,這是豆瓣技術的基礎。

純粹的技術原理之外,相關豆瓣技術還有三個核心原則:以用戶為中心、簡單的前臺與復雜的后臺、快速開發(fā)。

以用戶為中心

Web2.0 改變了一些產(chǎn)品特性的優(yōu)先級。原來做產(chǎn)品會把功能性放在首要位置,而可用性的優(yōu)先級會往后放。現(xiàn)在則由于要給普通用戶使用,必須要以用戶為中心,肯定要從易用的角度出發(fā)。可以說,Ajax技術的流行,首先解決的也是一個觀念問題。雖然這時點擊量無法獲得增長,但是它卻可以給用戶帶來更為便利的網(wǎng)絡訪問。現(xiàn)在的網(wǎng)站開發(fā)不是為了追求點擊量了,而是為用戶提供需要的功能,滿足他們的需求。

尋找需求以創(chuàng)新,了解需求以完善細節(jié)

在楊勃看來,對大部分人來說,書籍、音樂、電影的選擇特別多,于是豆瓣網(wǎng)的方向初步確定,也就是需要發(fā)現(xiàn)和分享。每個人的口味都不一樣,大家共享之后就會產(chǎn)生口碑傳遞。“所以,一開始做豆瓣不是為了做一個網(wǎng)站,而是滿足人們的一個需求,如果對用戶沒用,只是新鮮是遠遠不夠的。”

現(xiàn)在同一類型的各個網(wǎng)站,技術高低對網(wǎng)站外觀的影響不是特別明顯,但只需要使用一下網(wǎng)站,就會明白很多差距。原因就在于,創(chuàng)新來自找到需求,細節(jié)來自了解需求。

簡單的前臺與復雜的后臺

為了最大程度的符合用戶習慣,簡單的前臺界面不代表系統(tǒng)的簡單。事實上,正相反,在Web2.0的系統(tǒng)中,后臺需要做更多的工作。一些表面看起來很簡單的功能背后需要大量的程序和計算的支撐。

基于數(shù)學統(tǒng)計的推薦引擎

豆瓣就是最具代表性的例子。與大多數(shù)網(wǎng)站不同的是,最早開發(fā)的部分是一套推薦引擎,這是基于數(shù)學統(tǒng)計的計算模型。在用戶點擊、瀏覽以后,這套模型可以自動分析出“與其興趣相投的人”,并主動地推薦用戶最有可能喜歡的書籍、音樂或者電影。

功能強大但使用簡單的管理工具

豆瓣是100%動態(tài)網(wǎng)站,沒有一個靜態(tài)的頁面。我們完全可以將其視為一個個人管理書籍、音樂、影碟的工具,只是將工具放在網(wǎng)上了。現(xiàn)在,很多網(wǎng)站抄襲了豆瓣的模式和資源,但僅僅抄襲一個網(wǎng)站的表面是沒有價值的。

Web越來越像一個計算平臺。通過各種Web應用將計算機連接起來,比如需要相冊時可以使用Flickr,需要地圖時調(diào)用Google Map的Api。隨著很多服務商逐漸將自己的服務開放出來,每個網(wǎng)站都可以視為一個軟件服務提供商,相互之間的聯(lián)系讓系統(tǒng)越來越復雜,而這種系統(tǒng)的復雜并不會帶來功能使用的繁瑣。

強大的功能、簡單的使用,這是Web2.0應用的必然趨勢。由豆瓣的應用,可以看出發(fā)現(xiàn)聯(lián)系用戶之間的關系,在后臺建立導引用戶功能的連接,針對數(shù)據(jù)量做好方便的存儲和查詢,這就是網(wǎng)站技術的核心。

快速開發(fā)

很難想象,豆瓣擁有5000萬的注冊用戶,Alexa的流量排名在一千左右,很長的一段時間內(nèi)卻一直就只有一臺八千塊錢攢起來的服務器、一兩個人的開發(fā)團隊維護著。

為了適應這種規(guī)模,開發(fā)模式需要進行改變。這在很多Web2.0的網(wǎng)站中都有所體現(xiàn),有人稱之為簡單哲學。為了快速開發(fā),系統(tǒng)設計也需要進行簡化。楊勃說,“豆瓣網(wǎng)中間也做過一些變動,最初還是受原來做企業(yè)系統(tǒng)的影響,結構設計的太復雜,甚至還分了很多層。后來就簡化了,因為太復雜之后就難以做快速開發(fā)。”

豆瓣現(xiàn)在采用的是敏捷開發(fā)的模式,這是一個快速開發(fā)、快速變化的體系,平均每兩天就有新的功能出現(xiàn)。

系統(tǒng)構架延展性強、更新升級迅速

“Web2.0網(wǎng)站是快速變化的,并不是把所有的功能都在開始階段完全實現(xiàn)。”楊勃說,“這就要求系統(tǒng)構架的可擴展性要做的很好。而且必須考慮將來規(guī)模可能帶來的問題。豆瓣網(wǎng)一開始的架構設計就可以支撐上百萬用戶。”同時,基于Web的開發(fā)省去了客戶端分發(fā)、維護的成本,因此可以做到“永遠的 BETA”、隨時更新和升級服務。據(jù)說,豆瓣學習對象Flickr的升級是以小時為單位的。

與用戶交互頻繁

Web2.0與用戶的交互也是讓網(wǎng)站快速完善的動力。網(wǎng)站運行之后,聽取用戶的反饋,指導下一步的應用開發(fā)。“豆瓣網(wǎng)有一個站務論壇,很多人經(jīng)常發(fā)言提出自己的需求。”比如豆瓣剛開張時,由于每個人都可以自由創(chuàng)建小組或者參加小組,于是用戶可能會同時參加幾十個小組。但由于很多小組人數(shù)比較少,可能很長時間才會有人發(fā)言,于是大家就要求有一個功能,把所有小組的最新發(fā)言聚合在一起。楊勃很快實現(xiàn)了這個功能,事實也證明非常受歡迎。

技術人員學習能力強

楊勃認為,由于是小團隊,工作模式就不能是一個經(jīng)理帶一幫人,而是大家都需要參與編程。而且,對綜合學習能力的要求比較高。“因為技術變化很快,現(xiàn)在對任何技術再熟悉,經(jīng)驗再多,過幾個月可能又出現(xiàn)了新的技術,因此最重要的是要能夠跟蹤最新的知識。而且由于最新的Web2.0模式和思想都是從國外發(fā)起的,所以程序員要具有在英文環(huán)境中直接溝通的能力,能夠直接參與到國外的開源項目中,而不是看已經(jīng)翻譯為中文的文檔。”楊勃表示,自己學習Python 也是隨豆瓣網(wǎng)開始的。“Python很適合敏捷開發(fā),最初的時候曾經(jīng)嘗試過使用Ruby,后來由于豆瓣網(wǎng)需要很多后臺的程序,Python更適合編寫一些后臺模型程序,最終前臺也統(tǒng)一為一種語言。”楊勃之前對MySQL了解很少,但在做豆瓣網(wǎng)的過程中,很快將知識彌補上來。“現(xiàn)在我們有幾個數(shù)據(jù)庫都可以做同步,有些內(nèi)容我們還向開源社區(qū)進行了回饋。”

豆瓣選用了很多開源產(chǎn)品,楊勃認為:“用好開源產(chǎn)品是非常關鍵的。豆瓣的平臺是基于Linux,數(shù)據(jù)庫用的是MySQL,除了數(shù)據(jù)挖掘和搜索,其它都是在開源產(chǎn)品之上開發(fā)的。因為現(xiàn)在有很多非常成熟的產(chǎn)品和模塊,沒有必要從頭做,只要有能力了解獲得這方面的知識,都能夠很快在別人的基礎上開發(fā)自己的系統(tǒng)。”

豆瓣是一個使用Python進行開發(fā)的網(wǎng)站

在開發(fā)框架方面,豆瓣主要使用Quixote(一個輕量級的Python Web框架,簡單、高效,代碼簡潔);后臺運行的Web服務主要使用Web.py(web.py也是一個Python的Web框架,簡單且功能強大)。

豆瓣網(wǎng)可分割成兩大塊:一塊是前端的Web,也就是用戶在瀏覽器訪問的時候會觸發(fā)一系列的操作,從數(shù)據(jù)庫拿出數(shù)據(jù),渲染成HTML頁面反饋給用戶,這是前端;另外一塊是后端,在豆瓣有一個很強的數(shù)據(jù)挖掘團隊,每天把用戶產(chǎn)生的數(shù)據(jù)進行分析,進行組合,然后產(chǎn)生出用戶推薦,然后放在數(shù)據(jù)庫里面,前端會實時的抓取這些數(shù)據(jù)顯示給用戶。

豆瓣(架構)設計現(xiàn)在在WEB這一端主要是用這么幾種技術:前端是nginx和lighttpd,中間是Quixote的Web框架,后面是MySQL以及我們自己開發(fā)的DoubanDB。這些除了Quixote都是一些比較流行的、尖端的技術。Quixote稍微老一點,如果要重新設計的話,可能會在這方面做一些考慮。比如Python社區(qū)中的Django、Pylons等等都是可以考慮的,那么在豆瓣的內(nèi)部的話,我們一般是用web.py,很輕量的一個Web框架來做,也是非常不錯的選擇,它可能需要自己做的事情多一點。

豆瓣現(xiàn)在還沒有達到數(shù)據(jù)庫分片的程度。最常見的手段是,按照功能分區(qū)。我們會把數(shù)據(jù)表分成幾個獨立的庫,現(xiàn)在是一共有4個庫。每個表都是庫的一個部分,每個庫會有主副兩個。通過這種方式來減輕數(shù)據(jù)庫的壓力,當然這個是現(xiàn)在的方案,再往后的話,表的行數(shù)會增長,到達一定的程度后,還要進行水平分割,這是肯定的。然后我們現(xiàn)在的技術方面,在操作數(shù)據(jù)庫之前,首先獲取數(shù)據(jù)庫的游標,有一個方法,這個方法會干所有的事情,我們以后做的時候會從這個方法中進行判斷該從哪取東西。這個架構已經(jīng)在了,只是現(xiàn)在還沒有做這一步而已。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲福利一区二区精品秒拍 | 国产免费福利片 | 久久精麻豆亚洲AV国产品 | 能播放的欧美同性videos | 国产综合成人久久大片91 | yellow片在线观看 | 免费看打屁股视频的软件 | 天天中文| 日本一区视频在线 | 国产一区二区三区高清视频 | 日本三级s级在线播放 | 男同精品视频免费观看网站 | 午夜A级理论片左线播放 | 国产精品嫩草影院在线看 | 天美影视传媒mv直接看 | 爆操美女 | 亚洲图片综合网 | 亚洲色欲色欲综合网站 | 乌克兰呦12~14| 乌克兰一级毛片9一18 | 国产区成人精品视频 | 国产suv精品一区二区四区三区 | ak福利影院 | 91麻豆制片厂 | 2022国产麻豆剧传媒古装 | 二区三区不卡不卡视频 | 98精品全国免费观看视频 | 亚洲视频在线一区二区 | 婷婷精品 | 国产精品久久久久久久午夜片 | 亚洲精品国产精品麻豆99 | 日本三级在线观看免费 | 亚洲AV无码专区国产乱码网站 | 青青青国产手机在线播放 | 精品亚洲午夜久久久久 | 三级午夜宅宅伦不卡在线 | 女人用粗大自熨喷水在线视频 | 亚洲成人黄色 | 国产区1 | 美女奶口隐私免费视频网站 | 1986葫芦兄弟全集免费观看第十集 |