97婷婷狠狠成人免费视频,国产精品亚洲精品日韩已满,高清国产一区二区三区,日韩欧美黄色网站,xxxxx黄在线观看,韩国一级淫片视频免费播放,99久久成人国产精品免费

為什么看起來(lái)簡(jiǎn)單的網(wǎng)站也要頂尖高手開(kāi)發(fā)?

2013/11/21 10:16     

來(lái)自知乎的話(huà)題討論“為什么很多看起來(lái)不是很復雜的網(wǎng)站,比如 Facebook、淘寶,都需要大量頂尖高手來(lái)開(kāi)發(fā)?”

回答:子柳,淘寶打雜的 碼農

就拿淘寶來(lái)說(shuō)說(shuō),當作給新人一些科普。

先說(shuō)你看到的頁(yè)面上,最重要的幾個(gè):

【搜索商品】——這個(gè)功能,如果你有幾千條商品,完全可以用select 這樣的操作來(lái)搞定。但是——當你有10000000000(一百億)條商品的時(shí)候,任何一個(gè)數據庫都無(wú)法存放了,請問(wèn)你怎么搜索?這里需要用到分布式的數據存儲方案,另外這個(gè)搜索也不可能直接從數據庫里來(lái)取數據,必然要用到搜索引擎(簡(jiǎn)單來(lái)說(shuō)搜索引擎更快)。好,能搜出商品了,是否大功告成可以啵一個(gè)了呢?早著(zhù)呢,誰(shuí)家的商品出現在第一頁(yè)?這里需要用到巨復雜的排序算法。要是再根據你的購買(mǎi)行為做一些個(gè)性化的推薦——這夠一幫牛叉的算法工程師奮斗終生了。

【商品詳情】——就是搜索完畢,看到你感興趣的,點(diǎn)擊查看商品的頁(yè)面,這個(gè)頁(yè)面有商品的屬性、詳細描述、評價(jià)、賣(mài)家信息等等,這個(gè)頁(yè)面的每天展示次數在30億以上,同樣的道理,如果你做一個(gè)網(wǎng)站每天有10個(gè)人訪(fǎng)問(wèn),你絲毫感覺(jué)不到服務(wù)器的壓力,但是30億,要解決的問(wèn)題就多了去了。首先,這些請求不能直接壓到數據庫上,任何單機或分布式的數據庫,承受30億每天的壓力,都將崩潰到完全沒(méi)有幸福感,這種情況下要用到的技術(shù)就是大規模的分布式緩存,所有的賣(mài)家信息、評價(jià)信息、商品描述都是從緩存里面來(lái)取到的,甚至更加極致的一點(diǎn)“商品的瀏覽量”這個(gè)信息,每打開(kāi)頁(yè)面一次都要刷新,你猜能夠從緩存里面來(lái)取嗎?淘寶做到了,整個(gè)商品的詳情都在緩存里面。

【商品圖片】——一個(gè)商品有5個(gè)圖片,商品描述里面有更多圖片,你猜淘寶有多少張圖片要存儲?100億以上。這么多圖片要是在你的硬盤(pán)里面,你怎么去查找其中的一張?要是你的同學(xué)想拷貝你的圖片,你需要他準備多少塊硬盤(pán)?你需要配置多少大的帶寬?你們的網(wǎng)卡是否能夠承受?你需要多長(cháng)時(shí)間拷貝給他?這樣的規模,很不幸市面上已經(jīng)沒(méi)有任何商業(yè)的解決方案,最終我們必須自己來(lái)開(kāi)發(fā)一套存儲系統,如果你聽(tīng)說(shuō)過(guò)google的GFS,我們跟他類(lèi)似,叫TFS。順便說(shuō)一下,騰訊也有這樣的一套,也叫TFS。

【廣告系統】——淘寶上有很多廣告,什么,你不知道?那說(shuō)明我們的廣告做的還不錯,居然很多人不認為它是廣告,賣(mài)家怎么出價(jià)去買(mǎi)淘寶的廣告位?廣告怎么展示?怎么查看廣告效果?這又是一套算法精奇的系統。

【BOSS系統】——淘寶的工作人員怎么去管理這么龐大的一個(gè)系統,例如某時(shí)刻突然宣布某位作家的作品全部從淘寶消失,從數據庫到搜索引擎到廣告系統,里面的相關(guān)數據在幾分鐘內全部消失,這又需要一個(gè)牛叉的后臺支撐系統。

【運維體系】——支持這么龐大的一個(gè)網(wǎng)站,你猜需要多少臺服務(wù)器?幾千臺?那是零頭。這么多服務(wù)器,上面部署什么操作系統,操作系統的內核能否優(yōu)化?Java虛擬機能否優(yōu)化?通信模塊有沒(méi)有榨取性能的空間?軟件怎么部署上去?出了問(wèn)題怎么回滾?你裝過(guò)操作系統吧,優(yōu)化過(guò)吧,被360坑過(guò)沒(méi),崩潰過(guò)沒(méi)?這里面又有很多門(mén)道。

不再多寫(xiě)了,除了上面提到的這些,還有很多很多需要做的技術(shù),當然并不是這些東西有多么高不可攀,任何復雜的龐大的東西都是從小到大做起來(lái)的,里面需要牛叉到不行的大犇,也需要充滿(mǎn)好奇心的菜鳥(niǎo),最后這一句,你當我是別有用心好了。

回答:覃超,Facebook工程師

功能上面雖然不復雜,但是要完成的細節卻很多。比如news feed里面的推薦算法就很重要,要根據用戶(hù)之前的記錄和與好友的關(guān)系來(lái)生成。另外就是根據用戶(hù)的信息和行為,要做機器學(xué)習和數據挖掘,從而來(lái)挑出最匹配的廣告。這也是比較花人力的事情。

另外Facebook的用戶(hù)量奇大無(wú)比。假設你只是做一個(gè)學(xué)校內部用的社交網(wǎng)站,那肯定很簡(jiǎn)單。但是如果考慮到上億人在上面用。你首先服務(wù)器就必須是一個(gè)分布式的機群,還要保證能抗住那么大的流量。同時(shí)為了性能夠好,不得不加上mem cache和網(wǎng)頁(yè)分塊加載等功能。還有就是每天用戶(hù)產(chǎn)生的總數據量(狀態(tài),留言,照片,分享等)有TB的數量級,你數據庫是否撐住等等。

另外樹(shù)大招風(fēng),你要一個(gè)很強的安全小組來(lái)保證網(wǎng)站在受攻擊的時(shí)候能防御好,還有要防止垃圾信息和惡心廣告或者程序的散播。另外還有為了全球化而帶來(lái)的多語(yǔ)言問(wèn)題。

總之,一個(gè)網(wǎng)站做大了之后,很多問(wèn)題就會(huì )產(chǎn)生,不是在校園里面做一個(gè)學(xué)期作業(yè)那么簡(jiǎn)單。

相關(guān)閱讀