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