全方位比較PHP的Node.js的優(yōu)缺點(diǎn)

這是典型好萊塢情節(jié):分道揚(yáng)鑣的兩位老朋友間的戰(zhàn)斗。摩擦經(jīng)常開始于一位對(duì)另一位不言而喻的領(lǐng)域感興趣。這部電影的編程語(yǔ)言版本是Node.js的引入將好友情節(jié)變成一場(chǎng)旗鼓相當(dāng)?shù)谋荣悺HP和JavaScript,兩個(gè)曾經(jīng)一起統(tǒng)治互聯(lián)網(wǎng)的合作伙伴現(xiàn)在為了開發(fā)者心中的份額開始一決雌雄。

在過去艾杏,他們的合作關(guān)系很簡(jiǎn)單。JavaScript處理瀏覽器上的小細(xì)節(jié)盅藻,PHP處理所有的存在于80端口和MySQL的服務(wù)器端任務(wù)购桑。這個(gè)幸福的聯(lián)合不斷支持著因特網(wǎng)的許多關(guān)鍵部分。在WordPress萧求、Drupal和Facebook上其兴,人們幾乎不會(huì)離開PHP一分鐘。

但是夸政,后來(lái)一些聰明的孩子發(fā)現(xiàn)他能使JavaScript運(yùn)行在服務(wù)器上元旬。突然,我們發(fā)現(xiàn)沒必要使用PHP構(gòu)建下一代服務(wù)器棧了守问。一種語(yǔ)言就足夠建立Node.js和運(yùn)行在客戶端的框架匀归。對(duì)一些人來(lái)說(shuō),“JavaScript無(wú)處不在”變成了咒語(yǔ)耗帕。

當(dāng)然穆端,結(jié)局并沒有寫完。相比較與吹噓Node.js的純粹和JavaScript無(wú)處不在的簡(jiǎn)單的程序員仿便,還有另外的程序員体啰,他們對(duì)深度代碼庫(kù)和了解PHP的穩(wěn)定性感到滿意。怪老頭能夠擊退服務(wù)器端新貴嗎嗽仪?JavaScript能推翻它的老朋友荒勇,實(shí)現(xiàn)統(tǒng)治世界嗎?我們?cè)谖⒉t里再抓一把爆米花闻坚,坐下來(lái)瞧瞧沽翔。

PHP贏在何處:混合內(nèi)容的代碼

你正在打字,想法隨之變成你網(wǎng)站中的文本。你想為進(jìn)程添加一個(gè)分支仅偎,根據(jù)URL的一些參數(shù)跨蟹,一點(diǎn)if-then語(yǔ)句就會(huì)使它看起來(lái)漂亮¢倭ぃ或者可能你想從數(shù)據(jù)庫(kù)中加入文本或數(shù)據(jù)窗轩。用PHP,你能打開PHP魔法標(biāo)簽在幾秒內(nèi)開始編寫代碼威恼。不需要模板——一切都是一個(gè)模板品姓。不需要額外的文件或者煞費(fèi)苦心的體系結(jié)構(gòu),因?yàn)榭删幊踢壿嬆芰烤驮谀愕闹讣狻?/p>

Node贏在何處:分離的內(nèi)容

混合內(nèi)容的代碼是拐杖箫措,最終會(huì)使你受到損害。當(dāng)然衬潦,在最初的兩到三次斤蔓,混合HTML代碼是有趣的。但是不久镀岛,你的代碼庫(kù)亂成一團(tuán)弦牡。真正的程序員添加結(jié)構(gòu),從邏輯層分離出裝飾層漂羊。對(duì)新的程序員來(lái)說(shuō)驾锰,代碼很容易理解清楚,便于維護(hù)走越。運(yùn)行在Node.js的框架由這樣的程序員所建椭豫,他們知道當(dāng)模型,視圖和控制器分離時(shí)旨指,生活會(huì)變得更好赏酥。

PHP贏在何處:深的代碼庫(kù)

網(wǎng)絡(luò)充滿了PHP代碼。最受歡迎的構(gòu)建網(wǎng)站平臺(tái)(WordPress谆构、Drupal和Joomla)都是用PHP編寫裸扶。不僅這些開源平臺(tái),大部分他們插件也是用PHP編寫搬素。網(wǎng)上到處有PHP代碼呵晨,它等著你去下載、修改和為你所用熬尺。

Node贏在何處:新的代碼意味著更多現(xiàn)代特征

當(dāng)然摸屠,網(wǎng)上有數(shù)以千計(jì)的開源PHP文件,但是一些是8歲的WordPress插件希望猪杭、祈禱有人下載它們餐塘。有誰(shuí)愿意去花費(fèi)幾個(gè)小時(shí)、幾天或者是幾周的時(shí)間去倒騰那些已經(jīng)好幾年沒有更新的代碼皂吮?Node.js插件不僅是新的戒傻,而且用最新體系的完整知識(shí)構(gòu)建而成税手。

PHP贏在何處:簡(jiǎn)單(在一定程度上)

PHP中沒有太多的東西:幾個(gè)處理字符串、數(shù)字的變量和基本函數(shù)需纳。它除了把數(shù)據(jù)從80端口移動(dòng)到數(shù)據(jù)庫(kù)并返回芦倒,不會(huì)做的太多。這是應(yīng)該做的〔霍妫現(xiàn)代數(shù)據(jù)庫(kù)是個(gè)神奇的工具兵扬,它能離開重的負(fù)載。對(duì)不應(yīng)該復(fù)雜工作口蝠,PHP的復(fù)雜度是適量的器钟。

Node贏在何處:閉包和更多的復(fù)雜性

JavaScript可能會(huì)有許多把一些人逼瘋的小特質(zhì)。但在大多數(shù)情況下妙蔗,它是一個(gè)娛樂現(xiàn)代語(yǔ)法的現(xiàn)代語(yǔ)言傲霸,有幾個(gè)有用的特征,比如閉包眉反。你能容易地重新配置和拓展它昙啄,使強(qiáng)大的函數(shù)庫(kù)像jQuery成為可能。你能像傳遞對(duì)象一樣四處傳遞函數(shù)寸五。為什么限制你自己呢梳凛?

PHP贏在何處:不需要客戶端應(yīng)用程序

所有的關(guān)于在瀏覽器和服務(wù)器上使用相同的語(yǔ)言的討論是好的,但是如果你不需要在瀏覽器上使用任何語(yǔ)言呢梳杏?如果你運(yùn)送HTML表單中數(shù)據(jù)呢韧拒?瀏覽器彈出,不會(huì)出現(xiàn)被未啟動(dòng)的JavaScript造成的令人頭疼的事情和小故障秘狞,這個(gè)JavaScript試圖在瀏覽器上創(chuàng)建一個(gè)來(lái)自二十多個(gè)web服務(wù)調(diào)用的頁(yè)面叭莫。純粹的HTML比其他東西工作更頻繁,而PHP是最優(yōu)化去創(chuàng)建HTML烁试。為何費(fèi)心在瀏覽器上用JavaScript呢雇初?在服務(wù)器上建立所有操作,避免小手機(jī)上的小瀏覽器重載减响。

Node贏在何處:與HTML-fat PHP調(diào)用相對(duì)的瘦服務(wù)調(diào)用

雖然AJAX-crazy HTML5 Web應(yīng)用程序有許多移動(dòng)部件靖诗,他們很酷,非常有效支示。一旦JavaScript代碼在瀏覽器緩存中刊橘,新數(shù)據(jù)沿著線路移動(dòng)。這沒有大量的HTML標(biāo)記語(yǔ)言颂鸿,不重復(fù)地去下載整個(gè)頁(yè)面促绵。只有數(shù)據(jù)改變了。如果你愿意投入時(shí)間創(chuàng)建一個(gè)平滑的瀏覽器端Web應(yīng)用程序,這將會(huì)有不錯(cuò)的報(bào)酬败晴。Node.js是最優(yōu)化地去傳送數(shù)據(jù)浓冒,僅僅只有數(shù)據(jù)通過Web服務(wù)。如果你的應(yīng)用程序是復(fù)雜而又?jǐn)?shù)據(jù)豐富的尖坤,這將是有效傳送的良好基礎(chǔ)稳懒。

PHP贏在何處:SQL

PHP與MySQL和它的許多變體,比如MariaDB慢味。如果MySQL不全是正確的场梆,還有其他的來(lái)自O(shè)racle和Microsoft的偉大的SQL數(shù)據(jù)庫(kù)。你的代碼用很少的改變就能轉(zhuǎn)換成你的查詢纯路。廣闊的SQL世界沒邊界或油。一些最穩(wěn)定,成熟的代碼與SQL數(shù)據(jù)庫(kù)連接感昼,意味著所有力量也能容易地被整合到PHP項(xiàng)目中装哆。它可能不是完美幸福的家庭,但它是大的定嗓。

Node.js贏在何處:JSON

如果你必須接入SQL,Node.js的函數(shù)庫(kù)可以做到萍桌。但Node.js也有JSON宵溅,一個(gè)與許多最新NoSQL數(shù)據(jù)庫(kù)交互的通用語(yǔ)言。這并不是說(shuō)你不能為你的PHP棧獲得JSON庫(kù)上炎,但當(dāng)使用JavaScript時(shí)有些流體可使用JSON的簡(jiǎn)單性去處理恃逻。這是從瀏覽器到Web服務(wù)器,再到數(shù)據(jù)庫(kù)的語(yǔ)法藕施。冒號(hào)和花括號(hào)在每處的作用相同寇损,這節(jié)約了你的時(shí)間。

PHP贏在何處:編碼速度

對(duì)大多數(shù)開發(fā)者裳食,編寫PHP Web應(yīng)用程序感到更快:沒有編譯器矛市,沒有部署,沒有JAR文件或者預(yù)處理器——僅僅是你喜歡的編輯器和一些PHP文件目錄诲祸。你的進(jìn)度會(huì)不同浊吏,但就一起迅速確定項(xiàng)目而論,PHP是一個(gè)很好用的工具救氯。

Node.js贏在何處:原始速度

編寫JavaScript代碼的過程中找田,當(dāng)你在計(jì)算花括號(hào)和圓括號(hào)時(shí),它有點(diǎn)難着憨,但是編寫成功后墩衙,你的Node.js代碼可以飛。它的回調(diào)機(jī)制很巧妙,因?yàn)槟軒湍愎?jié)約運(yùn)行線程的時(shí)間漆改。核心被建好心铃,旨在為你做一切,這不是每個(gè)人想要的嗎籽懦?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末于个,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子暮顺,更是在濱河造成了極大的恐慌厅篓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捶码,死亡現(xiàn)場(chǎng)離奇詭異羽氮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)惫恼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門档押,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人祈纯,你說(shuō)我怎么就攤上這事令宿。” “怎么了腕窥?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵粒没,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我簇爆,道長(zhǎng)癞松,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任入蛆,我火速辦了婚禮响蓉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哨毁。我一直安慰自己枫甲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布挑庶。 她就那樣靜靜地躺著言秸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迎捺。 梳的紋絲不亂的頭發(fā)上举畸,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音凳枝,去河邊找鬼抄沮。 笑死跋核,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叛买。 我是一名探鬼主播砂代,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼率挣!你這毒婦竟也來(lái)了刻伊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤椒功,失蹤者是張志新(化名)和其女友劉穎捶箱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體动漾,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丁屎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旱眯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晨川。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖删豺,靈堂內(nèi)的尸體忽然破棺而出共虑,到底是詐尸還是另有隱情,我是刑警寧澤呀页,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布看蚜,位于F島的核電站,受9級(jí)特大地震影響赔桌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渴逻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一疾党、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惨奕,春花似錦雪位、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至卧波,卻和暖如春时肿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背港粱。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工螃成, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留旦签,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓寸宏,卻偏偏與公主長(zhǎng)得像宁炫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氮凝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容