찾다

 >  Q&A  >  본문

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

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

黄舟黄舟2779일 전807

모든 응답(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
  • 취소회신하다