對普通的WEB項目,NODEJS跟傳統的PHP相比,有哪些優勢?
最近學了一些NODEJS,也用一些開源項目做了一個簡單的站點,個人感覺單從做WEB項目來看的話,NODEJS跟傳統的PHP相比,沒有感覺出有什麼優勢,反而因為坑爹的回調,反而開發效率不高,容易出錯。目前只覺得用NODEJS,做一個長鏈接之類的,消息推送什麼的還行,做WEB項目,真心沒優勢啊,各位大神有什麼見解??
我只發現兩個好處,一是省內存,沒錢買好主機但網站又有一定流量的時候node更經濟;另一個是npm比composer好用,當你在國內,當你用php,當你用composer,當你一個release循環要做很多次composer install,composer update;你一定會想念npm。
不過優勢不等於有意義,npm相比composer的優勢是有意義的,這其實本身也和語言有關係,js是一種基本穩定的語言,php的迭代在吸收新功能,所有js的包的版本只需要關注本身功能的問題而不需要特別考慮語言兼容性;php的包因為語言本身升級的問題會產生兼容性的問題。
省內存還是有意義的,一個月省幾十塊可以多吃幾頓好吃的餃子。
但php碼農因為聽別人吹得好轉node,那是中了江湖上的圈套。會JavaScript的人很多,語言本身的門檻就低很多。
隨著社區的活躍,第三方資源也會越來越多。回調這個事情,只要代碼寫漂亮了,自然調試也會輕鬆了,吐槽這個真沒啥意義,現在大部分語言都在提供這個特性。
其實綜合來講,大的web項目確實 優勢不大,但也算是個還可以的選擇,畢竟萬事沒有完美的。瀉藥
偶不會node就隨便說說個人覺得也就中間件有點用
做WEB沒啥特別的優勢要說也就什麼非同步IO塊點啥的可php也有唯一優點好像是給就會寫js的人一個不換語言就能搞後端的念想套用之前老大說的技術選擇觀點,一定不能「哪個牛逼用哪個」,也不能「哪個流行用哪個」,更不能「牛人用哪個我就用哪個」, 要根據自身團隊的特點,加所要開發產品的特點來做判斷。
從功能來說
如果有Server Push的功能, 訪問量大,選擇NodeJS是一個不錯的選擇,公司內部有的產品線用了NodeJS, 每天10億PV的確節省了一些機器成本,當然也是一步一步摸索出來的,也吃了很多NodeJS和Callback hell和錯誤捕獲的虧,出現很多服務不穩定的情況,但只要做好BackUp也都OK從團隊上來說
如果是一個小創業團隊,本身就沒幾個人,兩個PHP,兩個Python, 兩個JavaScript, 肯定會出現block的情況,哪塊工作量大被block住別人其他人也幫不上忙,這個時候就要學會收斂,做一個互聯網產品肯定離不開JavaScript, 還不如有意識地培養團隊JavaScript的能力,選擇NodeJS來做,有什麼問題大家可以互相照應
如果是大公司,每個語言開發者都很多, 大家各司其職項目也不會被block就另當別論了,也只能從功能上來決定使用什麼技術了,當然有些時候也有被逼無奈的,比如有些大公司內部有自己的協議,只有PHP擴展,沒有NodeJS擴展,當然要選PHP了
最重要的還是要鍛煉團隊寫好代碼的能力,這樣用任何一個語言都可以寫出好代碼
大家還可以參考之前我老大團隊情況如何看待 TJ 宣布退出 Node.js 開發,轉向 Go? - 程墨Morgan 的回答可能造成一種錯覺是,我學了JS就能一統前後端了 (逃
說一個最簡單的,就是nodejs可以實現同構:
前後端使用一套渲染邏輯。另外基於node.js可以有效解決java之類的靜態語言寫模板文件噁心的問題。
最後:大規模的node伺服器只應用與兩個地方,一個是資源密集型的api。另外一個就是所謂的前後端沒使用過PHP, 只能說下Node.js做web開發的特點吧1:創建web伺服器很方便,一分鐘就可以搞定,使用起來簡單順手。2:有多個框架的選擇,比如當前流行的Express, 下一代的 Koa 3:前後端代碼一致,會後端的技術,再學點html,css,jquery 自己就可以輕鬆搞定比較簡單的web開發
nodejs 更適合做web service 特別是JSON based 配合前端MVC做單頁應用 對前端程序很有誘惑 而且也很順手
都是最好的語言!
優勢可能在於前後端分離吧,畢竟協作是個挺蛋疼的事情
推薦閱讀:
※session和cookie的生命周期?session如何不同伺服器共享?
※與nodejs相比,php有啥優勢?
※PHP 使用 Mysqli 的 prepare 語句有什麼好處?
※php為什麼弄點號連接字元串?