【问题标题】:Webapp with MEAN stack and Java具有 MEAN 堆栈和 Java 的 Webapp
【发布时间】:2014-10-05 21:08:25
【问题描述】:

我从事 Java/J2EE 开发人员已有几年了,但不幸的是,由于我的日常工作和公司环境,最近我没有学到太多东西。

这就是我决定处理我自己的个人项目的原因,该项目将具有以下详细信息/功能(第一个是最优先的)

  • 适用于已登录用户的 Web 应用
  • 需要从第三方 API 检索信息(想想 Twitter、Facebook、Pinterest...)
  • 同时对相同功能(API 信息检索)进行多次并发访问
  • 可通过网络访问,最终可通过移动设备访问
  • Cron/Quartz 定期(每晚?)通过电子邮件向用户发送更新信息
  • 带有实时信息的仪表板
  • 发生事情时通过电子邮件或网络通知(新的 Twitter 关注者...)

我的知识如下:

  • 带有一点 Spring/Hibernate 的 Java/J2EE,安静了很多 Maven/Ibatis
  • 在 Tomcat/JBoss 上部署
  • HTML、CSS 和 Javascript,基本。足以执行基本操作,但不足以构建响应式和闪亮的网络,例如

我的软技能:

  • 我想学习新技术
  • 我需要学习新技术(更新我的简历)

在阅读了一些关于许多可用技术的文章后,我想到了以下几点:

  • 对于引擎部分(即从第三方检索信息,将其显示在网络和移动设备上,每晚发送电子邮件......),我正在考虑一个完整的 MEAN 堆栈(我更喜欢意味着。 js 即使 mean.io 看起来更成熟)即 MongoDB + Express.js + AngularJS + Node.js
  • 管理部分(新用户创建、登录管理):Java + Spring/Hibernate + 常规 MySQL + AngularJS
  • 管理部分使用 Apache+Tomcat 的 Amazon EC2 实例

你怎么看+一些问题:

  • 假装我将以不同的方式处理引擎部分和管理部分是不是很疯狂?
  • MEAN 堆栈是否也能处理所有管理/登录功能?
  • 假装我可以在(目前)有限的 Javascript 知识的情况下学习 MEAN 堆栈是不是很疯狂?当然,重点是学习它...我知道会有一段安静的学习曲线,但我已经准备好了。
  • 是否有一种简单的方法可以将 Node.js 与 Java 代码集成?有人试过吗?比如我想利用 Node.js 的非阻塞能力,但是调用 Java 方法来访问第三方 API。

提前感谢您的建议。

尼古拉斯。

【问题讨论】:

  • 嘿 Nicolas,想看看你的学习曲线如何。我在同一条路上。如果您可以发布您的发现,那就太好了。

标签: java javascript node.js amazon-ec2 mean-stack


【解决方案1】:

这将是一项艰巨的任务。这没有好坏之分,只是一个声明:)

您提到的技术有很多,每一种技术都有一些学习曲线。昨晚刚看完美国忍者武士,你的学习曲线听起来很像扭曲的墙!不要气馁,准备从小事做起,你会没事的。

您必须涵盖的三大内容是:

  • NodeJS
  • MongoDB
  • AngularJS

NodeJS

网上有很多教程,你需要学习 Javascript 以及它在 NodeJS 服务器上的意义。 Javascript 的异步特性看起来与 Java 非常不同(我知道,这也是我的过渡)。 一个我喜欢的教程:Mixu's Node Book 我喜欢的电子书:Node Beginner

MongoDB

我自己仍在研究这个,但 MongoDB 与关系 SQL 数据库不同。你也需要在这里有一点不同的想法。大量的 MongoDB 教程。

但是,我会说可以将 NodeJS 与 SQL 结合起来。如果你这样做是为了学习,你可以一次转动所有的旋钮。如果你想看到一些工作,你可以像往常一样使用数据库。我喜欢在使用 SQL 数据库时使用knexJS。太棒了。

AngularJS

Angular 是一个庞大的框架。人们喜欢它。一旦你知道它很容易使用。我读过它很容易上手,然后更难掌握。有很多方法可以尝试解决这个问题,这是我已标记的链接:Learn AngularJS in a Weekend

也就是说,您不需要在您的应用程序中使用 Angular。一些框架可能支持它,并且基于 Angular 前端的 NodeJS 后端,但是您可以使用您现有的前端技能(甚至,gasp!,jQuery)来制作您的网络页面驱动您的后端服务器。

我对您提出的其他问题的看法

  • 假装我将以不同的方式处理引擎部分和管理部分是不是很疯狂?

您可以将两者分开,但如果这只是为了学习,请合二为一。 MongoDB 当然可以处理您的管理工作。

  • MEAN 堆栈是否也能处理所有管理/登录功能?

是的。一些框架也将这些作为默认包。

  • 假装我可以在(目前)有限的 Javascript 知识的情况下学习 MEAN 堆栈是不是很疯狂?当然,重点是学习它...我知道会有一段安静的学习曲线,但我已经准备好了。

这并不疯狂,但学习曲线相当大。牢记应用程序/目标将是您的良好动力。另外,不要试图在第一次就完美地完成所有事情。找到一个看起来不错的 NPM 包,使用它,然后继续。现在不要担心所有细节。在您的下一个应用程序上执行此操作,或者在您拥有功能基线后执行此操作。

  • 是否有一种简单的方法可以将 Node.js 与 Java 代码集成?有人试过吗?比如我想利用 Node.js 的非阻塞能力,但是调用 Java 方法来访问第三方 API。

当然,Java 客户端可以调用 NodeJS 服务器。如果你创建了一个 NodeJS API 服务器,你可以编写一个 Java 客户端来测试它。你甚至可以使用other crazy things from NodeJS to Java code,但我建议暂时不要使用 Java。对于很多 Web 的东西(HTTP 请求等),我想你会惊喜地发现在 NodeJS 中做某事的速度比在 Java 中的等价物要快。

【讨论】:

  • 感谢一百万克莱。我是 StackOverflow 的新手,所以我不能给你任何支持,但无论如何,一旦我获得足够的声誉,我就会回到这里! :) 所以你基本上建议忘记在管理部分使用 Java 后端。是的,嗯,这是为了学习,但如果我能将我的想法转化为一个有效且成功的 Web,我不会介意 :-) 我想我会做一些精益开发,以获得潜在用户的一些快速反馈: )
  • 混合后端会占有一席之地,但会使您的学习过程复杂化。除非您已经有一个 Java 后端来做您需要的事情,并且您只需要 NodeJS/Mongo 中的“数据层”。两者都可以根据需要绑定到前端,和/或您的 NodeJS 层可以调用您的 Java 服务器。可能性是无穷无尽的,这就是为什么保持简单是一个好的开始。 (您可以选择答案而无需投票:)
猜你喜欢
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多