想成為一名WEB開發(fā)者窝趣?學(xué)習(xí)Node.js而不是PHP

原文鏈接:https://medium.com/zerotomastery/want-to-be-a-web-developer-learn-node-js-not-php-dc298154fafd
原作者:Andrei Neagoie

我的學(xué)生叫乌,經(jīng)常問我這么一個問題叉抡,“你怎么在課程中教授Node.js而不是PHP?”告訴人們“相信我,我在這行工作”僅僅是不夠的遵班。所以,這是我在課程中包含Node.js的原因以及為什么如果你想作為開發(fā)人員投資你的未來潮改,你應(yīng)該放棄PHP狭郑。雖然我以這兩個為例,但在本文中汇在,我將向您展示一個框架翰萨,用于決定在開發(fā)人員職業(yè)生涯中應(yīng)該學(xué)習(xí)哪些工具,編程語言糕殉,框架和庫亩鬼。

由于您作為開發(fā)人員的時間和資源有限殖告,您必須決定投入時間以獲得最大的投資回報。

現(xiàn)在雳锋,您應(yīng)該問自己的問題:在知識黄绩,薪水和滿意度方面,我作為開發(fā)人員在未來的職業(yè)生涯中玷过,我可以投入時間和精力來學(xué)習(xí)哪些具有最大凈值爽丹?

這并不意味著選擇最簡單的路徑。這意味著選擇能夠讓您在未來許多年保持相關(guān)性和競爭力的工具冶匹,同時培養(yǎng)您成為高級開發(fā)人員的技能习劫。

在本文的結(jié)論中,如果您想成為使用下面相同分析的Web開發(fā)人員嚼隘,您將在2018年找到我推薦的所有技術(shù)。所以你知道袒餐,如果你不耐煩飞蛹,你可以跳到最后。

我們將在這篇文章中使用兩種類型的分析:工作前景分析技術(shù)分析灸眼。開始了:

Node.js與PHP - 工作前景分析

我們將使用Stackoverflow開發(fā)人員調(diào)查LinkedIn進行此分析卧檐。我們也只關(guān)注與Web開發(fā)相關(guān)的技術(shù)。

人氣:

JavaScript連續(xù)第五年成為最常用的編程語言焰宣。Python的使用在五年內(nèi)第一次超越了PHP霉囚。Node.js在哪里?Node.js是一個javascript運行時匕积。在非技術(shù)性說法:Node.js是一種使用Javascript的方式盈罐,就像你可以在服務(wù)器端使用PHP一樣。現(xiàn)在闪唆,將Node.js視為Javascript盅粪。


正如您所看到的,Node.js和Javascript排名靠前悄蕾,而PHP則不那么受歡迎票顾。

在Stackoverflow在開發(fā)者調(diào)查中收集數(shù)據(jù)的五年中,他們已經(jīng)看到Javascript和Node.js等語言越來越流行帆调,而PHP等語言的使用一直在縮械旖尽:

React是開發(fā)人員中最受歡迎的,然而番刊,Node.js是最想學(xué)和第二受歡迎的:



薪金和機會:

使用下面圖表中藍線下方列出的語言的開發(fā)人員含鳞,例如Go,Rust和Clojure撵枢,由于他們擁有多少經(jīng)驗民晒,他們的報酬更高精居。然而,使用像PHP這樣的藍線以下語言的開發(fā)人員潜必,即使有多年的經(jīng)驗靴姿,也會得到較少的報酬。此圖表中圓圈的大小表示與其他開發(fā)人員相比磁滚,使用該語言的開發(fā)人員數(shù)量佛吓。PHP顯著地似乎通過他們擁有的多年經(jīng)驗來越來越少地獎勵開發(fā)人員。


在LinkedIn Jobs上垂攘,您可以看到全球范圍內(nèi)Node.js開發(fā)人員的職位發(fā)布遠遠超過PHP開發(fā)人員近10,000维雇。盡管事實上Node.js是一種比PHP 更年輕的技術(shù),并且事實上PHP與Wordpress一起大量使用晒他,它支持互聯(lián)網(wǎng)上所有網(wǎng)站的30%吱型。

最后,你可以看到各地區(qū)技術(shù)的平均工資(我沒有包括下面的全球標(biāo)簽陨仅,因為PHP甚至沒有在那里制作):




同樣津滞,我們不是在這里抨擊PHP。我們只是查看數(shù)字來決定選擇學(xué)習(xí)什么灼伤。顯然触徐,它的排名始終低于其他技術(shù),如Javascript和Node.js.

所以:

PHP的受歡迎程度正在下降狐赡,而就業(yè)市場和Node.js的普及正在增長撞鹉。總體而言颖侄,PHP開發(fā)人員的報酬顯著低于其他開發(fā)人員鸟雏,而且趨勢似乎在不斷擴大

Node.js與PHP - 技術(shù)分析

讓我們來看看每種技術(shù)的優(yōu)缺點发皿。

Node.js優(yōu)點:

  • 特別適用于需要客戶端和服務(wù)器之間實時通信的應(yīng)用程序崔慧。像socket.io這樣的工具可以很容易地構(gòu)建聊天應(yīng)用程序之類的東西 這些相同的功能使Node.js適用于處理來自IoT設(shè)備(物聯(lián)網(wǎng))和單頁應(yīng)用程序(SPA)的數(shù)據(jù)的應(yīng)用程序,這些數(shù)據(jù)現(xiàn)在非常普遍穴墅。
  • 使用JSON進行本機序列化和反序列化惶室,可以很好地處理Web上的AJAX請求。
  • 非常適用于具有非阻塞輸入/輸出的事件驅(qū)動應(yīng)用程序(I / O是信息處理系統(tǒng)(如計算機)與外部世界之間的通信玄货,可能是人或其他信息處理系統(tǒng)(如數(shù)據(jù)庫)
  • 你學(xué)習(xí)Javascript皇钞,你學(xué)習(xí)Node.js. 您不需要學(xué)習(xí)PHP等其他語言。這意味著你可以花費你所有的努力來學(xué)習(xí)Javascript并掌握它松捉。您只需一種語言就可以編寫前端和后端代碼夹界。
  • 許多流行的客戶端框架,如React隘世,Vue和Angular都是用JavaScript編寫的可柿,JavaScript是現(xiàn)代瀏覽器的主要語言鸠踪。在使用Node.js服務(wù)器端時,您可以在應(yīng)用程序開發(fā)堆棧中獲得一種腳本語言的所有好處复斥。在前端和后端使用相同的語言非常適合可維護性:它使所有團隊成員之間的工作更容易為您的應(yīng)用程序营密,因為前端和后端開發(fā)人員使用相同的JavaScript數(shù)據(jù)結(jié)構(gòu),函數(shù)和語言約定目锭。
  • 從客戶端一次處理大量請求時评汰,單線程事件驅(qū)動系統(tǒng)非常快痢虹。
  • 通過NPM可以為客戶端和服務(wù)器端訪問不斷增長的第三方庫和軟件包被去,以及用于Web開發(fā)的命令行工具。此外奖唯,其中大多數(shù)都托管在GitHub上惨缆,您可以在其中報告問題,或者您可以自己分叉代碼來自定義它丰捷。
  • 它已成為運行Javascript相關(guān)工具和其他Web開發(fā)人員相關(guān)工具的標(biāo)準(zhǔn)環(huán)境踪央,包括任務(wù)運行器,minifiers瓢阴,linters,格式化程序健无,預(yù)處理器荣恐,捆綁器和分析處理器。
  • 許多新的API和服務(wù)(如AWS Lambda)本機支持累贤。
  • 我們獲得了V8的所有性能提升叠穆,這是建立在Node.js之上的Google JavaScript解釋器。由于Google的工程設(shè)計不斷提高V8的性能臼膏,Node.js可以免費獲得此開發(fā)的好處硼被。

Node.js缺點:

  • 上面提到的NPM包可能會膨脹您的代碼,可能不安全渗磅,并且很難找到哪些包是好的嚷硫,因為有很多選項(查看下載和GitHub統(tǒng)計是解決此問題的一種方法)。
  • 使用Node.js和npm包構(gòu)建服務(wù)器的方法很多始鱼。這使新開發(fā)人員難以接受仔掸。
  • 對于依賴于大??量CPU消耗代碼的服務(wù)器(即圖像處理或排序等繁重算法)而言,這并不理想医清。通常起暮,任何非I / O都可以被認(rèn)為是CPU消耗代碼。在這種情況下会烙,通常多線程服務(wù)器環(huán)境比Node.js更好(解決方案:如果需要负懦,可以將代碼的CPU密集部分交給用C編寫的程序)筒捺。
  • 節(jié)點不使用底層系統(tǒng)或機器的所有核心。您必須自己編寫邏輯才能使用多核處理器纸厉。這可以通過多種方式實現(xiàn)系吭,但需要一些額外的工作(當(dāng)您能夠最大化系統(tǒng)的CPU使用率時,這將成為專業(yè)人員)残腌。

Node.js小結(jié):

Node.js非常適合具有大量并發(fā)連接的應(yīng)用程序村斟,每個請求只需要很少的CPU周期。這使得它非常適用于當(dāng)前在互聯(lián)網(wǎng)上的許多應(yīng)用抛猫,如SPA和實時應(yīng)用蟆盹。

使用JavaScript的內(nèi)置異步處理,可以創(chuàng)建高度可擴展的服務(wù)器端代碼闺金,最大限度地利用單個CPU和內(nèi)存逾滥,同時能夠處理比傳統(tǒng)多線程服務(wù)器更多的并發(fā)請求。

Node.js帶有很少的依賴關(guān)系败匹,規(guī)則和指南寨昙,允許開發(fā)人員以他們想要的方式自由和創(chuàng)造性地開發(fā)他們的應(yīng)用程序。開發(fā)人員可以為他們的項目選擇最佳架構(gòu)掀亩,設(shè)計模式舔哪,模塊和功能,同時通過NPM從社區(qū)獲得所有好處槽棍。

PHP優(yōu)點:

  • 由于年齡的原因捉蚤,強大而龐大的社區(qū)。
  • PHP有一個強大的代碼庫炼七,包括用于構(gòu)建網(wǎng)站的流行平臺(即WordPress缆巧,Joomla,Drupal)豌拙。CMS(內(nèi)容管理系統(tǒng))陕悬,如WordPress,可以在幾分鐘內(nèi)輕松部署博客或電子商務(wù)網(wǎng)站按傅,并允許非開發(fā)人員輕松定制它們捉超。
  • 使用非開發(fā)人員工具更容易設(shè)置非驮,更適合不需要了解SSH和Linux服務(wù)器的個人或小公司伺通。許多PHP應(yīng)用程序(即cPanel)由基本托管平臺提供,可以一鍵安裝治专。
  • 與其他通用編程語言不同推捐,PHP是專門為Web設(shè)計的裂问。PHP提供了一個出色的服務(wù)器端解決方案,因為所有頁面都可以在服務(wù)器上輕松生成和呈現(xiàn),因此無需在瀏覽器中使用JavaScript堪簿。如果您想避免在客戶端運送太多代碼痊乾,這非常有用。Node.js也能夠做到這一點椭更,但解決方案并不那么簡單哪审。
  • PHP7和HHVM(由facebook支持)開發(fā)在PHP性能方面有所改進......但最近HHVM出現(xiàn)了一些壞消息

PHP缺點

  • PHP僅用于后端虑瀑。這意味著如果您想在客戶端工作或被視為完整堆棧開發(fā)人員湿滓,您仍然需要學(xué)習(xí)Javascript。
  • 使用PHP舌狗,繁重的服務(wù)器端呈現(xiàn)以及對服務(wù)器生成和呈現(xiàn)頁面的大量請求對單頁應(yīng)用程序來說不是一個好選擇叽奥。
  • 每個活動客戶端都會占用一個服務(wù)器進程。不適合擁有許多客戶端連接的應(yīng)用痛侍。
  • 與Node.js相比朝氓,對AWS Lambda等新API和服務(wù)的PHP本機支持是有限的。
  • 它遵循傳統(tǒng)的客戶端 - 服務(wù)器模型主届,其中每個頁面請求都啟動應(yīng)用程序赵哲,數(shù)據(jù)庫連接和HTML呈現(xiàn)。與使用永久運行并且只需要初始化一次的Node.js應(yīng)用程序相比君丁,這使得PHP在瀏覽網(wǎng)站時變慢枫夺。因此,Node.js更適合網(wǎng)絡(luò)與HTML5绘闷,AJAX和WebSockets一起發(fā)展的新方向筷屡。

PHP小結(jié):

圍繞它的大型社區(qū),PHP更容易學(xué)習(xí)簸喂。對于博客或新聞網(wǎng)站等標(biāo)準(zhǔn)化解決方案而言,它是一個不錯的選擇燎潮。它具有Wordpress的強大功能喻鳄,這是最受歡迎的CMS(內(nèi)容管理系統(tǒng)),它允許您創(chuàng)建可自定義的博客而無需太多編碼确封。但是除呵,在這種情況下更簡單并不是一個好的質(zhì)量。學(xué)習(xí)技術(shù)越容易爪喘,有人進入現(xiàn)場并增加供應(yīng)池就越容易颜曾,而且你需要為服務(wù)收取的費用越低。


結(jié)論

隨著Wordpress的普及秉剑,PHP是Web 1.0時代的頂級語言之一泛豪。Node.js于2009年推出,技術(shù)上不是語言,而是Javascript的運行時環(huán)境诡曙。它是更年輕的Web開發(fā)的冠軍臀叙,更適合構(gòu)建基于事件的,數(shù)據(jù)驅(qū)動的价卤,I / O繁重的應(yīng)用程序劝萤,您在Web 2.0時代會遇到更多。

特別是慎璧,Node.js的異步和基于事件的體系結(jié)構(gòu)使其非常適合實時應(yīng)用程序床嫌,例如消息傳遞和協(xié)作應(yīng)用程序,其中許多請求同時發(fā)生胸私,并且客戶端和服務(wù)器之間有很多來回厌处。沒有Wordpress不能活下去?好吧盖文,Node.js有自己的CMS嘱蛋,叫做Keystone.js很棒。

總會有權(quán)衡五续。永遠不會有一種技術(shù)可以幫助您解決所有問題并使您免于工作過時洒敏。我們所能做的最好的事情就是分析我們的選擇,并選擇一個能獲得最佳投資回報的選項疙驾⌒谆铮看看上面的工作前景分析和技術(shù)分析,我們可以看到一個明顯的贏家它碎。

我選擇了Node.js.

雖然如果按照自己特定的方式使用所有技術(shù)都很棒函荣,但我們生活在一個信息如此豐??富的世界,我們必須限制我們可以關(guān)注和深入學(xué)習(xí)的主題數(shù)量扳肛。

在我的課程中傻挂,我教授今天在該領(lǐng)域的職業(yè)生涯中相關(guān)的方法,以及Facebook挖息,Netflix金拒,谷歌和亞馬遜等一些大公司使用的工具。如果您想在2018年成為一個完整的堆棧Web開發(fā)人員套腹,我建議您學(xué)習(xí):

**HTML5
CSS3
Javascript
React.js
Node.js + Express.js
PostgreSQL **
和其他一些......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绪抛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子电禀,更是在濱河造成了極大的恐慌幢码,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尖飞,死亡現(xiàn)場離奇詭異症副,居然都是意外死亡店雅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門瓦糕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來底洗,“玉大人,你說我怎么就攤上這事咕娄『ヒ荆” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵圣勒,是天一觀的道長费变。 經(jīng)常有香客問我,道長圣贸,這世上最難降的妖魔是什么挚歧? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吁峻,結(jié)果婚禮上滑负,老公的妹妹穿的比我還像新娘。我一直安慰自己用含,他們只是感情好矮慕,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著啄骇,像睡著了一般痴鳄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缸夹,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天痪寻,我揣著相機與錄音,去河邊找鬼虽惭。 笑死橡类,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芽唇。 我是一名探鬼主播猫态,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼披摄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起勇凭,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤疚膊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虾标,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寓盗,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了傀蚌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片基显。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖善炫,靈堂內(nèi)的尸體忽然破棺而出撩幽,到底是詐尸還是另有隱情,我是刑警寧澤箩艺,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布窜醉,位于F島的核電站,受9級特大地震影響艺谆,放射性物質(zhì)發(fā)生泄漏榨惰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一静汤、第九天 我趴在偏房一處隱蔽的房頂上張望琅催。 院中可真熱鬧,春花似錦虫给、人聲如沸藤抡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杰捂。三九已至,卻和暖如春棋蚌,著一層夾襖步出監(jiān)牢的瞬間嫁佳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工谷暮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒿往,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓湿弦,卻偏偏與公主長得像瓤漏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颊埃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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