何时使用传统 Java 堆栈(Struts2/SpringMVC)与现代 JS 堆栈(AngularJS、NodeJS 等)

When to go with traditional Java stack (Struts2/SpringMVC) vs modern JS stack (AngularJS, NodeJS etc)

我们需要实现一个单一格式的应用程序(长格式),它会持久保存到 Oracle DB 中。没有任何类型的 Web 服务。这里的文化传统上是 Java 导向的,但它对建议持开放态度。

搭配的优点和缺点是什么:

  1. 传统 MVC Java 堆栈 - Spring、Struts2 或 SpringMvC、Hibernate
  2. JS(现代)堆栈 - AngularJS、NodeJS、ReactJS

如能对优缺点进行清晰的解释,我们将不胜感激。

正如我所说,我一直无法找到合理且易于理解的比较。

是苹果和橘子。我只是将此作为答案发布,因为它超出了评论。

先吹毛求疵,AngularJS是前端技术,可以和任何后端技术一起使用(我用的是Struts2)。因此,让我们从比较中删除它。

第二个吹毛求疵的比较是 JS 与 Java 的选择。如果您进行了研究,您可能会将 NodeJS 与 Play、Vert.x 或类似软件进行比较。不是因为这些框架是 "modern",而是因为它们共享一些使 NodeJS 成为现实的设计目标(Vert.x 在意图上非常相似,它具有相当的速度、非阻塞设计,并允许多语言编程)。

但确实有比框架更基础的东西……那就是语言。如果您了解 JS 并且您从事过前端设计,做了一个模型,然后需要开发服务器端服务并且对另一种语言不太满意,那么在这种繁重的工作上投资真的没有意义您可以立即开始做一些有用的事情。反之亦然(从Java的角度)不管什么框架你都需要投入时间,如果你已经知道一个Java的web框架,何必再浪费时间搞别的东西呢?

最后一个问题不是修辞,说真的,为什么要浪费你的时间?为了与 JS 保持一致,您可以将所有内容都保持在一种语言中,NodeJS 非常快,尽管为了保持比较公平,有许多 Java Web 框架 Struts2/SpringMVC 没有与 NodeJS 相似的设计目标,而玩,Vert.x,我相信还有其他比较公平。 JS 有不同的做事方式,如果你有 JS 忍者,那么以这种方式做任何事情都是有意义的。至于为什么 Java,它速度很快,它有一个巨大的代码库,有适用于一切的 API 和框架,从元编程、人工智能、机器人技术、安全性,显然是数据库和所有常见的东西,有很多选择。它更有条理,最后这意味着几个月后你通常可以弄清楚你在做什么,你可以更好地分享工作和分工。但同样,这有关系吗?我不想与一般 public 开始争论,只有你知道你的要求。考虑他们,也考虑人性,走合理的路。

根据我的经验,人们使用他们所知道的东西,我发现人们经常在他们最喜欢的框架上争吵不休,而其他人则没有其他原因,那就是他们所知道的。如果你打算利用一些技术工具优势来尝试达成共识,但这种情况极不可能发生,我建议首先看看你的人力资源能力;我的意思是你可以用 Java 或 JS 来写,不管怎样,但快乐的员工会产生更多的东西!大多数人宁愿与之合作的东西不能被轻视。

这不是你使用哪个堆栈的问题。优点和缺点与所涉及的技术无关,而不是通过选择一个框架而不是另一个框架来羞辱用户体验。

如果您从一个想法到生产软件有任何项目,您应该知道有很多很多因素会影响项目架构的决策。这完全取决于您应该先写的提案。本文档的质量将影响进一步的决策和方向,以及来自最终用户(所需产品的消费者)的反馈。

无需语言、框架、程序员即可满足用户需求。它只是应该做一些事情的软件。这就是您需要在第一时间知道的全部内容。

你可以向用户承诺你可以构建所需的软件,但你不会告诉用户它是如何构建的,你使用哪种语言、框架、技术、资源。

您可以看到其他人创建了什么以及它是如何工作的,如果它符合用户的需求,那么您很幸运 copy/paste。不幸的是,它在大多数情况下不起作用,您必须为建筑物中的每一块砖支付费用。

技术最重要的部分是编程资源。如果你有这样的资源,你已经绑定了一半,哪种技术更适合用于该项目。技术、语言、框架各不相同,没有人能做到专家级的。你可以用一个框架构建软件,然后用另一个框架从头开始重建它,然后你就可以进行比较。如果您无法比较用于构建软件的成本,那么您的决定只是基于其他意见的意见。

如果您有在不同平台上使用不同语言和不同框架构建生产软件的经验,就会出现这种情况。因为许多语言、框架在大多数业务问题中都是面向问题的,专家建议使用适合解决此类问题的框架。哪一个更好没有任何意义,因为如果你选择一个比其他人更推荐的软件并使用它创建丑陋的软件,你不能说它比其他不那么推荐的软件更糟糕。另一方面,如果您选择框架并创建可能缺少其他框架中可用的某些功能的出色软件,您将获胜。

不要玩技术,使用合格的咨询服务。这超出了 Whosebug 的主题。因为这些信息总是商业性的。祝您在寻找适合您需求的更好软件的过程中一切顺利。