Node vs python用于创建RESTful Web服务

jer*_*use 43 python rest web-services node.js

我正在为移动应用程序创建REST API后端.我很难在python中的Twisted矩阵和Nodejs中的Express Framework之间做出决定.

我经历了几个参考:

  1. Python REST框架建议
  2. Web +移动应用程序的技术堆栈
  3. REST API的最佳语言/框架

像街区的其他孩子一样,我也有同样的要求:

  1. 易于维护.
  2. 可扩展到大流量.
  3. 应该支持MongoDB/NoSQL
  4. 应该安全且易于验证.
  5. Web服务的其他标准要求.

我理解事实:

  1. "它的解决方案是规模,而不是技术."
  2. 任何技术的良好解决方案都将取得成功.
  3. 大多数技术堆栈都有一些值得夸耀的成功案例.

如果我必须选择一个技术堆栈而不是另一个,它应该是什么?一方面,Nodejs提供本机异步和非阻塞I/O功能.但是,twistedmatrix 在它的小猫中有一些非常大的成功故事.在python和其他语言中也可以使用其他框架.其他建议也受到欢迎.

我的具体问题是:我计划在python中使用Twisted Matrix来构建RESTful API.因为我之前有python和django的经验,而且代码非常整洁.我是否应该使用Node或其他技术堆栈?

请不要涉及扩展讨论.

ps1:了解移动应用程序,将其转换为基于地理位置的大规模消息传递.REST API必须处理空间计算.

ps2:我准备好接受信仰的飞跃.

Yug*_*dle 39

考虑到你在问题中所说的一切,你愿意接受信仰飞跃.我想我有答案:

  • 我自己是一个python-django开发人员,python因为你正在处理的问题,我不会首先考虑.

  • 在将成为非常大系统一部分的地理应用程序中,在最终实现应用程序的第一阶段时,您将遇到并发和优化问题.

  • 我认为你应该node.js毫不怀疑[它可能需要时间来实现它,但将是最好的解决方案],这就是为什么:

    • 它本身就是由于javascript的设计解决了你将面临的大多数性能问题.
    • 您不需要任何代理服务器nginx来提供服务,它将再次为您节省开销.
    • 它工作得非常好mongo db,再次作为一个很好的缓存后端.

    • 您可以实现nginx10 lineWeb服务器相当的性能node.js.

概括地说, Python同步工作由设计,并且tornadoTwisted允许它去async棘手的线程-为什么不选择它本身自带的解决方案,那你的目标非常问题的技术?

node.js考虑到开发人员的工作效率,我不会更喜欢网站开发.但我会说我们应该使用node.js它真正解决问题的地方,即作为解决方案然后是技术(正如你在问题中引用的那样).

这是一个问题,为什么nosqldb当你有一个很棒的关系数据库时使用postgres?你知道你可以做的答案 - postgres你可以用nosqldbmongo 做的事情,而反之亦然.

所以,你的问题区域是原生的,node.js所以似乎没有必要尝试重新发明轮子python.

注意事项:

  • node.js因为它是一种新技术,你将面临初步的摩擦.
  • javascript 最初可能更难为python开发人员维护.
  • 信仰的飞跃是必须的,因为你的目标是长期目标,而不是短期的好处,节省时间在久经考验的技术上.

举个例子 :

  • Facebook使用php其所有网页,但它使用固有的并发erlang聊天.
  • 考虑erlangpython仿真,考虑更合乎逻辑.


ebo*_*man 20

您的问题很大程度上取决于非纯粹技术性的子问题,因为从纯粹的技术角度来看,您提出的两个解决方案之间不太可能存在任何真正的性能差异.您需要提出的问题大致如下:

1)我最熟悉哪种语言?

2)我更喜欢哪种语言写作?

3)如果我要让更多的人参与这个项目,他们将如何回答前两个问题?

4)哪种语言有更好/更全面的库来处理项目中出现的常见任务?

5)在大多数托管环境中更容易找到/更容易设置哪种语言/环境,我在早期阶段考虑为我的项目.

甚至不要问自己"如果我的项目成为下一个Facebook,哪个技术堆栈最好?".如果你有幸到达那一点,你将不会使用你开始使用的相同技术堆栈.不要试图过早优化.