午夜网站国产欧美_加勒比视频亚洲无码_91亚洲人人在字幕国产_18禁止美女爆乳免费网站_被消防员c哭高h野外糙汉动漫_午夜精品视频在线无码_gogowww人体大胆裸体午液_2021自拍偷区亚洲综合第一页_国产欧美一区二区精品性色超碰_99國產精品無碼

Hi,您好,歡迎來(lái)到西安盛圖軟件科技有限公司!

盛圖科技|惠新宸:我也曾經(jīng)是“不適合”編程的人

發(fā)布時(shí)間:2023-06-20 10:45:48

惠新宸:我也曾經(jīng)是“不適合”編程的人

惠新宸,是國(guó)內(nèi)最有影響力的PHP技術(shù)專(zhuān)家,PHP開(kāi)發(fā)組核心成員,PECL開(kāi)發(fā)者,Zend公司外聘顧問(wèn)。他曾供職于雅虎,百度,現(xiàn)在新浪微博任平臺(tái)及數(shù)據(jù)部總架構(gòu)師兼首席PHP顧問(wèn)。惠新宸 是PHP NG核心開(kāi)發(fā)者,PHP5.4,5.5的主要開(kāi)發(fā)者。作為PECL開(kāi)發(fā)者貢獻(xiàn)了Yaf ,Yar以及Yac、Taint等多個(gè)優(yōu)秀開(kāi)源作品,同時(shí)也是APC,Opcache,Msgpack等項(xiàng)目的維護(hù)者。

從一個(gè)在網(wǎng)上搜PHP教程的初學(xué)者,到PHP開(kāi)發(fā)組核心成員,惠新宸覺(jué)得整個(gè)過(guò)程就像"打怪升級(jí)"。和Java一樣也被稱(chēng)為藍(lán)領(lǐng)語(yǔ)言的PHP,在他看來(lái)恰恰是能夠培養(yǎng)更多編程者的搖籃,而人人都能編程的時(shí)代,勢(shì)必會(huì)產(chǎn)生更多能夠推動(dòng)技術(shù)進(jìn)步的牛人。

問(wèn):你是如何開(kāi)始對(duì)編程感興趣的?

我第一次進(jìn)行"編程"好像還是在小霸王學(xué)習(xí)機(jī)上。后來(lái)大學(xué)學(xué)的是計(jì)算機(jī),研究生的時(shí)候負(fù)責(zé)學(xué)校校園化建設(shè),主動(dòng)或者被動(dòng)地做了很多Web開(kāi)發(fā)工作,包括當(dāng)時(shí)學(xué)校很多二級(jí)部門(mén)的網(wǎng)站,校園BBS的維護(hù)等。 想想好像也沒(méi)有那么一件事,或者一個(gè)契機(jī)說(shuō)我就喜歡上編程了。就感覺(jué)很自然地就做了這個(gè)行業(yè),也沒(méi)有覺(jué)得不喜歡,就這么做下來(lái)了。

問(wèn):你是如何喜歡上PHP的?你又是如何成為PHP開(kāi)發(fā)組核心成員的?

當(dāng)時(shí)在研究生的時(shí)候要做一個(gè)網(wǎng)站,完全不會(huì)的情況下就去網(wǎng)上搜,剛好搜到一個(gè)PHP的教程,教怎么做一個(gè)簡(jiǎn)單的網(wǎng)站,于是試著照著做了一下,發(fā)現(xiàn)無(wú)論從安裝、部署(當(dāng)時(shí)還沒(méi)有那種集中化部署工具,不過(guò)也有很多教程教怎么部署LAMP)、編寫(xiě)代碼,測(cè)試都很方便,語(yǔ)法還和C語(yǔ)言很像,甚至很多API的名字也和libc API的一樣。于是就這樣開(kāi)始了和PHP的不解之緣。

應(yīng)該是在2011年吧,那個(gè)時(shí)候?yàn)榘俣乳_(kāi)發(fā)了Ap(Yaf的前身項(xiàng)目),當(dāng)時(shí)在百度內(nèi)部用的還不錯(cuò),于是我想著要貢獻(xiàn)到PECL上去,修改了一些以后,改名為Yaf(Yet another framework,這個(gè)名字也是有點(diǎn)自嘲的意思,因?yàn)镻HP的框架非常多),就發(fā)郵件到PHP的郵件組,因?yàn)橛⒄Z(yǔ)比較爛,所以過(guò)程還是比較曲折,好在當(dāng)時(shí)Pierre Joye幫助我了很多,讓Yaf進(jìn)入了PECL。

另外在提交Yaf之前我其實(shí)一直都在研究PHP的源代碼,所以也提交了不少Bug和Fix,比如我記得有一天中午,Rasmus(PHP之父)在IRC上說(shuō)發(fā)現(xiàn)一個(gè)Bug,我差不多5分鐘后就給出了Fix。

等慢慢的和一些人熟悉,得到了大家的信任以后,我就發(fā)起申請(qǐng),之后就獲得了PHP核心代碼的提交權(quán)限,參與到PHP的直接開(kāi)發(fā)和Bug修復(fù)中,成為了開(kāi)發(fā)組的一員。

至于說(shuō)核心么,那是慢慢積累來(lái)的,其實(shí)也是一個(gè)互信的過(guò)程。如果你的工作大家認(rèn)可,那么就會(huì)尊重你的意見(jiàn)。我慢慢地和Dmitry Stogov變的熟了起來(lái),得到了Zend核心部分的提交權(quán)限,提交了很多核心Bug的修復(fù)和新特性,再后來(lái)成為了Zend外聘顧問(wèn),慢慢成為了Core Developer。

聽(tīng)起來(lái)好像有點(diǎn)打怪升級(jí)的感覺(jué)吧。

問(wèn):你是在什么樣的契機(jī)下開(kāi)發(fā)了Yaf?當(dāng)時(shí)百度是如何支持Yaf開(kāi)發(fā)的?

在Yaf之前,關(guān)于使用不使用框架其實(shí)一直有一個(gè)經(jīng)典的爭(zhēng)論就是:"使用框架會(huì)降低性能,而不使用框架會(huì)降低開(kāi)發(fā)效率。"

當(dāng)時(shí)百度內(nèi)部的框架很多,包括開(kāi)源的Yii,ZF之類(lèi)的,也包括有的團(tuán)隊(duì)自己寫(xiě)的。這樣有一個(gè)問(wèn)題就是類(lèi)庫(kù),一些周邊設(shè)施沒(méi)有辦法互通。

還有一個(gè)原因就是,很多框架作者把框架發(fā)布出去以后,會(huì)發(fā)現(xiàn)不同的人會(huì)對(duì)框架做各種修改,導(dǎo)致時(shí)間久了,一個(gè)框架發(fā)出去,就變成了各種變種,后續(xù)統(tǒng)一升級(jí)也變得不可能。

所以,我決定要用PHP擴(kuò)展實(shí)現(xiàn)一個(gè)框架來(lái)解決這些問(wèn)題,當(dāng)然在寫(xiě)這個(gè)擴(kuò)展之前其實(shí)也不是很有信心,不知道采用擴(kuò)展能帶來(lái)多大的性能提升。好在最后的結(jié)果是很好的。

問(wèn):為什么選擇用C語(yǔ)言來(lái)寫(xiě)Yaf?

PHP是C語(yǔ)言寫(xiě)的,所以他的擴(kuò)展也是采用C語(yǔ)言來(lái)寫(xiě)的,于是就選擇了C語(yǔ)言來(lái)寫(xiě)Yaf。

問(wèn):為什么會(huì)離開(kāi)百度,來(lái)到新浪微博?

這個(gè)其實(shí)原因很多,比如當(dāng)時(shí)在百度是T7了,業(yè)務(wù)上的事情參與得少了,感覺(jué)自己好像沒(méi)有那么多事情要做,有點(diǎn)虛度的感覺(jué)。

另外,我當(dāng)時(shí)在百度的商業(yè)搜索部,并不直接接觸訪問(wèn)量大的系統(tǒng),所以也希望找個(gè)大的平臺(tái)再鍛煉下,而微博剛好就是這樣一個(gè)平臺(tái)。

來(lái)了微博以后,確實(shí)接觸到了很多之前沒(méi)有遇到過(guò)的挑戰(zhàn),也感覺(jué)自己的知識(shí)有了更大的舞臺(tái)可以發(fā)揮。

問(wèn):你現(xiàn)在在新浪微博具體負(fù)責(zé)的工作是什么?

我現(xiàn)在在微博技術(shù)部,帶著一個(gè)基礎(chǔ)服務(wù)小組,我們主要的工作也分階段,前兩年的主要工作就是做微博LAMP的性能優(yōu)化,包括各種基礎(chǔ)框架,工具研發(fā),環(huán)境優(yōu)化,規(guī)范制定等等。

這兩年,微博的LAMP架構(gòu)已經(jīng)趨于穩(wěn)定,整體性能也有幾倍的提升。我們也有了一套自己的高性能LAMP整體解決方案。所以LAMP優(yōu)化的工作少了一些?,F(xiàn)在主要精力都放在基礎(chǔ)設(shè)施的研發(fā)上,比如緩存中間層,轉(zhuǎn)碼服務(wù),通信平臺(tái)等等。

問(wèn):PHP7(PHPNG)有沒(méi)有把新浪微博平臺(tái)使用PHP的需求和痛點(diǎn)當(dāng)做重要的反饋?

這個(gè)當(dāng)然是有的,自從我加入開(kāi)發(fā)組以來(lái),和不少的其他成員有過(guò)類(lèi)似的爭(zhēng)論就是:我認(rèn)為性能很重要,而有人會(huì)認(rèn)為新特性很重要,那么當(dāng)一個(gè)新特性影響性能的時(shí)候我們就會(huì)發(fā)生爭(zhēng)執(zhí)。

我很偏執(zhí)于性能提升,這也是為什么我后來(lái)和Dmitry Stogov合作比較多的原因,因?yàn)樗蔡貏e關(guān)心性能。

而我關(guān)心性能的主要原因就是,對(duì)于每1%的性能提升能給微博這樣的國(guó)內(nèi)最大的LNMP平臺(tái)帶來(lái)的價(jià)值我有很真實(shí)的體會(huì)。目前我們微博的整體性能雖然相比兩年前有了很大的提升,但是我認(rèn)識(shí)到在不影響開(kāi)發(fā)效率的情況下,進(jìn)一步的提升只能依賴(lài)于語(yǔ)言、環(huán)境的性能提升。所以這部分也就是微博對(duì)PHP的需求。

PHP7在Wordpress上相比于5.6,有100%以上的真實(shí)性能提升(QPS),我相信明年,等PHP7發(fā)布以后,我們微博的整體LAMP平臺(tái)的各項(xiàng)業(yè)務(wù)也可以得到100%的性能提升。

問(wèn):你參與PHP7(PHPNG)開(kāi)發(fā)的流程是什么樣的?你是如何和其他開(kāi)發(fā)組成員合作的?

PHPNG當(dāng)時(shí)是一個(gè)秘密的項(xiàng)目,最初的參與者只有Dmitry和我,我還記得是今年開(kāi)春的時(shí)候,當(dāng)時(shí)我們做的基于PHP5的JIT項(xiàng)目因?yàn)樾Ч焕硐胨詳R置了,大家都比較郁悶。

Dmitry說(shuō)他有個(gè)想法,把ZVAL重新設(shè)計(jì)下,壓縮一下大小來(lái)減少內(nèi)存占用。然后我們倆個(gè)人討論了一下,因?yàn)槠鋵?shí)我們每天都會(huì)有各種想法,所以當(dāng)時(shí)也只是覺(jué)得:嗯,這個(gè)想法也許能Work。但還不是很有信心。

當(dāng)時(shí)的主要想法是趕緊做出一個(gè)能運(yùn)行的原型來(lái)測(cè)試下效果。這個(gè)過(guò)程中我們主要是討論想法,然后各自實(shí)現(xiàn)要做的部分,再合并。

合作的主要工具還是靠Skype,不過(guò)因?yàn)樗谑ケ说帽?,和我們有時(shí)差,所以也會(huì)借助于郵件交流,通過(guò)Github來(lái)Review代碼。

等到后來(lái)項(xiàng)目差不多有了結(jié)論,我們發(fā)現(xiàn),"嘿,這個(gè)主意不錯(cuò),起作用了"。然后就公開(kāi)了。之后就變成了正常的大家協(xié)作模式,有想法就提交RPC,提交Patch,投票,大家Reivew,然后合并。

問(wèn):PHP7到目前為止已經(jīng)增加或減少了哪些特性?在發(fā)布之前,還將如何提升性能?

有很多,除了PHPNG這個(gè)分支主要提供性能提升以外,我們還有AST(抽象語(yǔ)法樹(shù))的支持,Uniform Variable syntax,64bits length string supports,一些新的語(yǔ)法糖,以及最近的Native TLS等。

PHP7將在2015年10月正式發(fā)布, 在這之前,我們還有一些想法要嘗試,比如使用zend_array直接替代Hashtable;比如通過(guò)指定函數(shù)重新分節(jié),排序來(lái)減少iTLB miss;比如把JIT的一部分優(yōu)化手段(類(lèi)型推倒)引入到PHP中,配合一些類(lèi)型專(zhuān)有的OPCodeHandler來(lái)提速;再比如進(jìn)一步提高代碼數(shù)據(jù)局部性減少Cache miss等等。

當(dāng)然,我們還有一個(gè)并行在做的JIT項(xiàng)目,只不過(guò)我很擔(dān)心這個(gè)項(xiàng)目能不能在PHP7發(fā)布的時(shí)候準(zhǔn)備就緒。

問(wèn):PHP的新版本將跨過(guò)PHP6直接升級(jí)為PHP7嗎?為什么?

這個(gè)主要的原因是,當(dāng)年P(guān)HP有過(guò)一個(gè)開(kāi)發(fā)版本叫做PHP6,但后來(lái)這個(gè)版本失敗了,沒(méi)有發(fā)布。所以,這次的版本也就應(yīng)該是PHP7了。

問(wèn):Facebook發(fā)布的語(yǔ)言Hack和PHP是什么關(guān)系?Hack的目的是要取代PHP嗎?這兩種語(yǔ)言相比各自有什么優(yōu)勢(shì)?

沒(méi)什么太大的關(guān)系,Hack is not PHP。要說(shuō)取代的話,我相信他們(Facebook)可能會(huì)有這樣的想法吧,不過(guò)這個(gè)要看社區(qū)接受不接受了。

對(duì)于Hack我不是特別熟悉,不好具體評(píng)價(jià)。

問(wèn):有人認(rèn)為由于PHP易于學(xué)習(xí),門(mén)檻低,所以導(dǎo)致一些并不適合編程的人涌了進(jìn)來(lái),你怎么看待這種觀點(diǎn)?

這個(gè)觀點(diǎn)我實(shí)在不敢贊同。我在本科畢業(yè)的時(shí)候,也嘗試找了一些開(kāi)發(fā)工作,面試了幾個(gè)單位,都被拒了,也許在當(dāng)時(shí)面試我的那些人眼里,我就是一個(gè)不適合編程的人吧。

但是PHP因?yàn)殚T(mén)檻低,讓人可以很快看到自己"編程"的成果,會(huì)對(duì)新手產(chǎn)生一個(gè)正向反饋激勵(lì)的作用,讓有興趣的人變得更有興趣。 而編程的人越多,那么產(chǎn)生大牛、對(duì)整個(gè)技術(shù)進(jìn)步做出貢獻(xiàn)的人出現(xiàn)的概率也越大。

并且,未來(lái)的編程語(yǔ)言一定是朝著易用性發(fā)展,進(jìn)一步降低編程的門(mén)檻,也許會(huì)有一天人人都能編程也說(shuō)不定呢!

問(wèn):一名合格的PHP工程師的知識(shí)結(jié)構(gòu)是怎樣的?

我記得以前有一句話說(shuō):" PHP工程師都是萬(wàn)金油",其實(shí)這句話不僅僅對(duì)PHP工程師適用,應(yīng)該對(duì)所有的工程師都適用。

知識(shí)結(jié)構(gòu)要很廣。Web開(kāi)發(fā)涉及的技術(shù)點(diǎn)是比較多的,HTML、CSS、JS、SQL這些以外,還要懂得一些Nginx、Linux、Mysql的配置、維護(hù)、排錯(cuò)常用的辦法,這些都應(yīng)該懂一些。

問(wèn):除了技術(shù)能力之外,你在面試的時(shí)候還會(huì)注重什么?

我會(huì)特別注意思維清晰、溝通、談吐。其實(shí)說(shuō)穿了就是未來(lái)一起共事的話,會(huì)不會(huì)有障礙,以及成長(zhǎng)潛力是否大。

問(wèn):曾經(jīng)的phpe.net站長(zhǎng)陳伯樂(lè)現(xiàn)在在賣(mài)男人襪。你對(duì)未來(lái)的打算是什么?會(huì)一直都是一位coder嗎?

其實(shí)我是一個(gè)很懶的人,從來(lái)不會(huì)考慮得很遠(yuǎn),今朝有酒今朝醉。所以對(duì)未來(lái)其實(shí)我也不是很清楚,我只是覺(jué)得現(xiàn)在我還是喜歡編程,喜歡通過(guò)自己的工作讓大家受益并獲得社區(qū)的贊譽(yù),我覺(jué)得這樣挺好的,我會(huì)繼續(xù)做下去的。


上一篇:十佳最受歡迎的編程語(yǔ)言 你擅長(zhǎng)幾個(gè)?
下一篇:IT外包服務(wù)---各種領(lǐng)域的未來(lái)前景和趨勢(shì)

歡迎登錄盛圖科技

歡迎注冊(cè)盛圖科技

已有賬號(hào),立即登錄