51CTO專(zhuān)訪(fǎng)人人網(wǎng)黃晶:WEB開(kāi)發(fā)需要隨需應(yīng)變
原創(chuàng)【51CTO專(zhuān)訪(fǎng)】互聯(lián)網(wǎng)中的開(kāi)發(fā)工作一般都是當(dāng)今***進(jìn)技術(shù)的試驗(yàn)場(chǎng),程序員該如何擺正自己的態(tài)度,成為一個(gè)合格的WEB開(kāi)發(fā)人員?而一個(gè)網(wǎng)站想做大做強(qiáng),就需要擁有自己的一套體系框架來(lái)支持日益變化的市場(chǎng)需求。
在專(zhuān)訪(fǎng)的最開(kāi)始,51CTO記者與黃晶先生討論的是WEB網(wǎng)站開(kāi)發(fā)過(guò)程中需求是千差萬(wàn)別的,在網(wǎng)站架構(gòu)設(shè)計(jì)階段應(yīng)該采取什么樣的措施實(shí)現(xiàn)隨需應(yīng)變的重構(gòu)?人人網(wǎng)在發(fā)展過(guò)程中有哪些經(jīng)驗(yàn)可以介紹?
人人網(wǎng)產(chǎn)品技術(shù)高級(jí)總監(jiān)-黃晶(51CTO攝)
在談到人人網(wǎng)早期的開(kāi)發(fā)時(shí),黃晶先生提到當(dāng)時(shí)主要是采用一些成熟的開(kāi)發(fā)技術(shù),比如Struts和Hibernete等。但是到后面發(fā)現(xiàn)類(lèi)似Hibernate這樣的技術(shù),在性能優(yōu)化方面還是不太理想,還是需要開(kāi)發(fā)出一套屬于自己的框架來(lái)適應(yīng)業(yè)務(wù)的發(fā)展。在這里51CTO記者也聯(lián)想到51CTO網(wǎng)站本身也曾經(jīng)歷過(guò)這樣一個(gè)發(fā)展過(guò)程,用戶(hù)量在迅速上升,內(nèi)容建設(shè)也日趨完善,但此時(shí)早期網(wǎng)站構(gòu)建過(guò)程中的問(wèn)題就暴露出來(lái)了。比如用戶(hù)發(fā)現(xiàn)頁(yè)面打開(kāi)速度變慢,編輯登陸后臺(tái)速度變慢,服務(wù)器已經(jīng)無(wú)法存儲(chǔ)海量的內(nèi)容數(shù)據(jù)。這些網(wǎng)站飛速發(fā)展的陣痛也同樣困擾著51CTO,不過(guò)及時(shí)改進(jìn)系統(tǒng),推出新的內(nèi)容平臺(tái),也極大的改變著這些困難,最終我們有了質(zhì)的飛躍??梢哉f(shuō)WEB開(kāi)發(fā)的經(jīng)驗(yàn)是逐步積累的,中國(guó)的開(kāi)發(fā)人員還是要有一定的耐心,相信困難都是可以克服的。
延伸閱讀
Struts最早是作為Apache Jakarta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過(guò)對(duì)該項(xiàng)目的研究,改進(jìn)和提高JavaServer Pages 、Servlet、標(biāo)簽庫(kù)以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。
Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,***革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
WEB程序員要有持之以恒的學(xué)習(xí)能力
在談到對(duì)WEB開(kāi)發(fā)人員的建議時(shí),黃晶先生建議剛涉足WEB開(kāi)發(fā)的程序員還是把基礎(chǔ)打牢。比如對(duì)于HTTP協(xié)議,對(duì)于MVC等基礎(chǔ)知識(shí)都要爛熟于心,一開(kāi)始不用好高騖遠(yuǎn)的就開(kāi)始鉆研架構(gòu)。在一定程度上來(lái)說(shuō),網(wǎng)站沒(méi)有達(dá)到一定級(jí)別就研究架構(gòu)沒(méi)有多少實(shí)際意義。羅馬并非一日建成,好的網(wǎng)站也不做不到一勞永逸。就算業(yè)內(nèi)知名的Twitter,其工程師也在為應(yīng)付頻繁宕機(jī)而苦惱,處理好每一個(gè)細(xì)節(jié)是程序員首先應(yīng)該做的。
國(guó)內(nèi)程序開(kāi)發(fā)的另一大障礙就在于架構(gòu),很多團(tuán)隊(duì)沒(méi)有自己的架構(gòu),也苦于沒(méi)有好的架構(gòu)可以借鑒。這可能與目前國(guó)內(nèi)的市場(chǎng)環(huán)境有關(guān),也與很多大網(wǎng)站為了保持自己的競(jìng)爭(zhēng)優(yōu)勢(shì)而樹(shù)立的技術(shù)壁壘。黃晶先生表示人人網(wǎng)目前構(gòu)建的開(kāi)放平臺(tái)不光為國(guó)內(nèi)開(kāi)發(fā)團(tuán)隊(duì)分配收益,還會(huì)把一些好的控制方法和框架方法與大家分享,從而與大家共同發(fā)展。如果真的可以成為現(xiàn)實(shí),那么首先就能為大家提供一些成熟的架構(gòu),便于大家更快的實(shí)現(xiàn)網(wǎng)站的功能,這也意味著能早一天從網(wǎng)站應(yīng)用中賺取***桶金。
NoSQL讓網(wǎng)站信息處理更高效
NoSQL的火熱讓人們似乎看到關(guān)系型數(shù)據(jù)庫(kù)即將崩潰一樣,不過(guò)在數(shù)據(jù)庫(kù)領(lǐng)域有著Oracle和IBM這樣的“房地產(chǎn)開(kāi)發(fā)商”,他們是不希望關(guān)系型數(shù)據(jù)庫(kù)如同現(xiàn)在的中國(guó)房?jī)r(jià)一樣出現(xiàn)“拐點(diǎn)”的。在WEB領(lǐng)域,NoSQL已經(jīng)開(kāi)始在Digg和Reddit這樣的大網(wǎng)站投入實(shí)戰(zhàn)。黃晶先生特別提示,NoSQL很適合處理目前互聯(lián)網(wǎng)中這種瑣碎而數(shù)量龐大的信息。比如人人網(wǎng)用戶(hù)發(fā)布的小消息,一天的數(shù)據(jù)條數(shù)很龐大,如果按照傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)處理就會(huì)嚴(yán)重影響效率。而在工業(yè)領(lǐng)域和金融領(lǐng)域,黃晶先生承認(rèn)目前NoSQL還無(wú)法完全承擔(dān),需要繼續(xù)發(fā)展。51CTO向您推薦《詳解NoSQL數(shù)據(jù)庫(kù)使用實(shí)例》以便于您更進(jìn)一步了解NoSQL的配置使用。
一個(gè)好的數(shù)據(jù)庫(kù)管理員可以用20%的精力解決80%的性能問(wèn)題,這樣的素質(zhì)很難培養(yǎng)。對(duì)于培養(yǎng)的問(wèn)題,黃晶先生還是建議要有扎實(shí)的基礎(chǔ),對(duì)于數(shù)據(jù)存儲(chǔ)的過(guò)程,查詢(xún)的過(guò)程,數(shù)據(jù)庫(kù)運(yùn)作原理都有很清晰的了解。在數(shù)據(jù)庫(kù)優(yōu)化方面,人人網(wǎng)目前的SQL語(yǔ)句都會(huì)要求DBA去分析,講清楚SQL語(yǔ)句的實(shí)現(xiàn)原理。同時(shí)他還警示,并不是所有的優(yōu)化手段都是有效的,有時(shí)候DBA需要有決斷能力。比如要重點(diǎn)解決那些使用頻繁的SQL,因?yàn)樗麄儠?huì)影響整個(gè)網(wǎng)站的反應(yīng)速度。而對(duì)于使用不怎么多的SQL,如果無(wú)法優(yōu)化,可以繞行。人人網(wǎng)在開(kāi)發(fā)過(guò)程中就遇到過(guò)這樣的問(wèn)題,怎么優(yōu)化都不行,***他們單獨(dú)用了一個(gè)后臺(tái)和一個(gè)系統(tǒng)來(lái)運(yùn)行這個(gè)應(yīng)用,從時(shí)間效益上取得了***的平衡。
51CTO專(zhuān)訪(fǎng)黃晶視頻請(qǐng)見(jiàn)下一頁(yè)
#p#
視頻采訪(fǎng)實(shí)錄