我想创建一个web应用程序,它实际上是实时(仪表板)。考虑维护项目的时间和复杂性,我正在寻求建议我应该为项目选择什么样的堆栈,以便长期维护它,维护API。你会推荐Python或NodeJS来创建实时Web服务吗?
下面是我的一些要求:在仪表盘最近发生的事件
实时更新。
正确的服务API。
专注于问题,而不是处理配置和调整。
问题:我感到困惑我的选择,很难采取决定,将帮助我在长期运行。
这里有一些事情我已经研究后想通了:
Python和拥有的NodeJS对WebSockets的框架(SocketIO,Greenlets,扭曲等)。但是,在JavaScript中对异步处理的支持更好。
回调地狱可能会吸吮。事实上,你不能指望所有调用的函数的返回值都是异步的(有Promise)。但是,必须遵循体面的编程实践。
Python为您提供了对代码的更多控制,并且更易于维护。
对于我来说Javascript已经出乎意料,在几次更新之后就破坏了事情。社区正在快速发展,但对于企业级应用程序来说这可能太快了。尽管如此,还有像PayPal这样的大企业的例子,Google对此表示赞赏。使用Javascript正在成为新的酷派,所以我更有可能为我的项目找到维护者,或者在未来找到更多的新兵。
与Django/Flask相比,在使用Express的JavaScript中更容易创建API。
节点项目通常有很多模块(正在看Github上的一些项目),比如BodyParser,Meteor,Webpack。我不认识他们,但感觉好像太多了。
在Python中比较难以拉屎,社区更加成熟稳定。与之相反的是,Node对于简单的任务有很多模块,其中大部分是由不合标准的程序员创建的,因为它们更容易制作。 (没有冒犯你,你不是其中之一:P)
有像Firebase这样的解决方案,但是我想避免使用它,因为长期来说这会严重依赖专有工具。欢迎提出建议。
我为什么问?
你在日常生活中可能比我更有经验。
PS:我在JavaScript和Python方面都有相当的经验(在Python中更高效)。但请不要将语言视为障碍。我想要一个解决方案,即使我的团队中有更多的成员,他们也应该对代码库感到满意。
编辑:堆栈交换不允许基于意见的问题。这不应该是一个。我打算从许多可用的人中选择一个特定的解决方案,得到一个合理的论点。在给予评论而非意见之前,您需要您在域名上的专业知识。请不要搁置这一点。
他们都可以做this.Different程序员喜欢不同prgramming language.So你为什么不选择一个你最擅长什么? – McGrady
谢谢@McGrady。 –
把问题搁置之前请考虑。我不打算征求意见,但是事实,专业知识和参考是偏好一个堆栈而不是另一个。相反,你可以减少褒奖的答案,而不是整个问题。 –