濮阳杆衣贸易有限公司

主頁 > 知識庫 > 淺析豆瓣網(wǎng)站運營的主要技術(shù)模式

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

熱門標(biāo)簽:河北crm外呼系統(tǒng)平臺 河南語音外呼系統(tǒng)平臺 百應(yīng)電話機(jī)器人價值 地圖標(biāo)注不顯示 福州公司外呼系統(tǒng)加盟 南京400電話辦理到易號網(wǎng) 金蘭灣地圖標(biāo)注app 周口權(quán)威的不封卡電話外呼系統(tǒng) 外呼系統(tǒng)2273649Z空間

豆瓣全部使用python開發(fā)。網(wǎng)站后臺的搜索引擎基于Twisted, GUI基于Quixote,還用到了cElementTree, MySQL和 PIL,這是豆瓣技術(shù)的基礎(chǔ)。
純粹的技術(shù)原理之外,相關(guān)豆瓣技術(shù)還有三個核心原則:以用戶為中心、簡單的前臺與復(fù)雜的后臺、快速開發(fā)。

以用戶為中心
Web2.0 改變了一些產(chǎn)品特性的優(yōu)先級。原來做產(chǎn)品會把功能性放在首要位置,而可用性的優(yōu)先級會往后放?,F(xiàn)在則由于要給普通用戶使用,必須要以用戶為中心,肯定要從易用的角度出發(fā)??梢哉f,Ajax技術(shù)的流行,首先解決的也是一個觀念問題。雖然這時點擊量無法獲得增長,但是它卻可以給用戶帶來更為便利的網(wǎng)絡(luò)訪問。現(xiàn)在的網(wǎng)站開發(fā)不是為了追求點擊量了,而是為用戶提供需要的功能,滿足他們的需求。
尋找需求以創(chuàng)新,了解需求以完善細(xì)節(jié)
在楊勃看來,對大部分人來說,書籍、音樂、電影的選擇特別多,于是豆瓣網(wǎng)的方向初步確定,也就是需要發(fā)現(xiàn)和分享。每個人的口味都不一樣,大家共享之后就會產(chǎn)生口碑傳遞。“所以,一開始做豆瓣不是為了做一個網(wǎng)站,而是滿足人們的一個需求,如果對用戶沒用,只是新鮮是遠(yuǎn)遠(yuǎn)不夠的。”
現(xiàn)在同一類型的各個網(wǎng)站,技術(shù)高低對網(wǎng)站外觀的影響不是特別明顯,但只需要使用一下網(wǎng)站,就會明白很多差距。原因就在于,創(chuàng)新來自找到需求,細(xì)節(jié)來自了解需求。
 
簡單的前臺與復(fù)雜的后臺
為了最大程度的符合用戶習(xí)慣,簡單的前臺界面不代表系統(tǒng)的簡單。事實上,正相反,在Web2.0的系統(tǒng)中,后臺需要做更多的工作。一些表面看起來很簡單的功能背后需要大量的程序和計算的支撐。
基于數(shù)學(xué)統(tǒng)計的推薦引擎
豆瓣就是最具代表性的例子。與大多數(shù)網(wǎng)站不同的是,最早開發(fā)的部分是一套推薦引擎,這是基于數(shù)學(xué)統(tǒng)計的計算模型。在用戶點擊、瀏覽以后,這套模型可以自動分析出“與其興趣相投的人”,并主動地推薦用戶最有可能喜歡的書籍、音樂或者電影。
功能強(qiáng)大但使用簡單的管理工具
豆瓣是100%動態(tài)網(wǎng)站,沒有一個靜態(tài)的頁面。我們完全可以將其視為一個個人管理書籍、音樂、影碟的工具,只是將工具放在網(wǎng)上了?,F(xiàn)在,很多網(wǎng)站抄襲了豆瓣的模式和資源,但僅僅抄襲一個網(wǎng)站的表面是沒有價值的。
Web越來越像一個計算平臺。通過各種Web應(yīng)用將計算機(jī)連接起來,比如需要相冊時可以使用Flickr,需要地圖時調(diào)用Google Map的Api。隨著很多服務(wù)商逐漸將自己的服務(wù)開放出來,每個網(wǎng)站都可以視為一個軟件服務(wù)提供商,相互之間的聯(lián)系讓系統(tǒng)越來越復(fù)雜,而這種系統(tǒng)的復(fù)雜并不會帶來功能使用的繁瑣。
強(qiáng)大的功能、簡單的使用,這是Web2.0應(yīng)用的必然趨勢。由豆瓣的應(yīng)用,可以看出發(fā)現(xiàn)聯(lián)系用戶之間的關(guān)系,在后臺建立導(dǎo)引用戶功能的連接,針對數(shù)據(jù)量做好方便的存儲和查詢,這就是網(wǎng)站技術(shù)的核心。
 
快速開發(fā)
很難想象,豆瓣擁有5000萬的注冊用戶,Alexa的流量排名在一千左右,很長的一段時間內(nèi)卻一直就只有一臺八千塊錢攢起來的服務(wù)器、一兩個人的開發(fā)團(tuán)隊維護(hù)著。
為了適應(yīng)這種規(guī)模,開發(fā)模式需要進(jìn)行改變。這在很多Web2.0的網(wǎng)站中都有所體現(xiàn),有人稱之為簡單哲學(xué)。為了快速開發(fā),系統(tǒng)設(shè)計也需要進(jìn)行簡化。楊勃說,“豆瓣網(wǎng)中間也做過一些變動,最初還是受原來做企業(yè)系統(tǒng)的影響,結(jié)構(gòu)設(shè)計的太復(fù)雜,甚至還分了很多層。后來就簡化了,因為太復(fù)雜之后就難以做快速開發(fā)。”
豆瓣現(xiàn)在采用的是敏捷開發(fā)的模式,這是一個快速開發(fā)、快速變化的體系,平均每兩天就有新的功能出現(xiàn)。

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

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

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


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

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

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

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

標(biāo)簽:呼和浩特 南京 瀘州 臺州 撫州 贛州 長治 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺析豆瓣網(wǎng)站運營的主要技術(shù)模式》,本文關(guān)鍵詞  淺析,豆瓣,網(wǎng)站,運營,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺析豆瓣網(wǎng)站運營的主要技術(shù)模式》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺析豆瓣網(wǎng)站運營的主要技術(shù)模式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    罗定市| 乌什县| 内江市| 湘西| 无极县| 龙陵县| 佛冈县| 石阡县| 肃宁县| 宁南县| 临安市| 五常市| 汉寿县| 太仓市| 望谟县| 嫩江县| 九寨沟县| 化隆| 静安区| 获嘉县| 台山市| 射洪县| 临夏县| 壤塘县| 日土县| 贵定县| 镇坪县| 华宁县| 丹巴县| 自治县| 岳阳市| 会昌县| SHOW| 宽城| 寿宁县| 海晏县| 莆田市| 巴中市| 元谋县| 西吉县| 富川|