搜尋

首頁  >  問答  >  主體

node.js - 用node开发一电商网站,好不好,和php比较有什么利弊,求解答

用node开发一电商网站,好不好,和php比较有什么利弊,求解答

黄舟黄舟2779 天前808

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-17 11:30:51

    不建議使用node寫。因為node的特徵是偏向效能,而php的特徵是注重邏輯。

    開發電商網站的話。是對邏輯有更多要求。比如說,分類,商品,評論,訂單,之類的都是業務邏輯。

    平台模型特性

    php 的(fpm)模型是基於執行緒的同步模型。所以你可以把大把的精力花在怎麼處理你的業務邏輯。而不是去向java那樣去搗鼓線程同步,資源搶佔上面。更不用想node那樣去考慮阻塞,非同步流程,和異常管理。這種模型對於性能上很粗暴但是對於業務開發成型非常有效。進程模型在低並發的場景中是非常有效的,沒有記憶體洩漏,和健壯性不高帶來的問題。因為一個執行緒的結束,就意味著所有佔據的資源都會被釋放。 php使用c作為擴展載體也確保了運算和io的效能。

    node 是基於單執行緒非同步模型。所以你需要考慮的事情就比較多了。非同步流程控制,單執行緒是脆弱的,需要做master/slave來增強健壯度。還要考慮異步下的異常處理。單執行緒也意味著不能容忍任何低效能(耗時計算等)和阻塞。

    框架與類別庫

    php社群現在發展的也越來越好,有symfony2和laravel等框架都讓你不用去自己去造輪子。自己現在的各種第三方平台都對php提供支援。而且以上兩個框架都提供了依賴注入,orm,模組化開發,資源管理等特性。可以輕鬆開發業務複雜而了擴充性好的web程式。對rest也都有很好的支持。橫向擴展也很好。

    node在web開發框架上只有connect,express比較成熟一些,而且express並不是一個mvc框架,精確來說是一個http業務層框架。也意味著你需要分散一些精力去處理除業務邏輯之外的部分,例如如何分層,選擇什麼樣的orm,採用什麼樣的模板引擎等。而且express的許多功能需要中間件提供支持,例如 cookies, session, json,crsf等。駕馭好express需要對http有深入的認識。對rest支援比較裸露。需要使用第三方類別庫才能優雅支持,透過express建立業務複雜擴展性好的web程式需要開發者不僅擁有比較強的js功底和開發複雜業務的經驗還要有維護優雅可擴展程式碼的能力。

    所以個人認為nodejs不適合開發具有以下性質的產品

    1.原型產品
    2.對性能無要求產品
    3.計算量更多
    4.團隊中js能力整體比較弱

    所以 你的 的問題 起碼佔了1,2。不建議使用node。

    node固然美使用需謹慎,因為他有很多坑需要開發者來填。 nodejs個人認為相比較其他平台還是太年輕,這也意味著,我們需要幫助node長大。變成高效能和易用並存的強大平台。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:30:51

    如果題主是對js很熟悉的程式設計師,用node是極好的,統一了語言,可以兼顧開發速度和效能。
    如果是一個團隊來做,也要考慮隊友是否能接受node,php也許更適合。
    單純進行理論可行性的討論是沒有意義的,Just do it!

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:30:51

    因為Node的特色和彈性,加上幾年發展生態也比較成熟了。我學得規避一下大計算的部分,跟Node做電商專案還是挻合適的。

    有個問題: Node做電商資料庫是用mongodb還是Mysql適合。

    回覆
    0
  • 取消回覆