与MEAN堆栈和Java的Web应用程序

我几年来一直是Java / J2EE开发人员,不幸的是,由于我的日常工作和公司的背景,最近我还没有学到很多东西。

这就是为什么我决定处理我自己的个人项目,这将有以下细节/function(第一个是最优先的)

  • login用户的Web应用程序
  • 需要从第三方API检索信息(想想Twitter,Facebook,Pinterest …)
  • 许多并发访问相同的function(API信息检索)在同一时间
  • 通过networking访问,最终通过手机访问
  • 克朗/石英定期(每晚?)通过电子邮件发送用户更新的信息
  • 带有实时信息的仪表板
  • 发生事情时通过电子邮件或networking发送通知(新的Twitter追随者…)

我的知识如下:

  • 用Spring / Hibernate有点Java / J2EE,安静了很多Maven / Ibatis
  • 部署在Tomcat / JBoss上
  • HTML,CSS和Javascript,基本。 足够执行基本的东西,但不足以build立一个响应和shiny的networking,例如

我的软技能:

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

在读了许多关于技术的安静之后,我想到了以下几点:

  • 对于引擎部分(即从第三方检索信息,显示在networking和手机,每天晚上发送电子邮件…),我正在考虑一个完整的平均堆栈(我更more.mount.js尽pipemean.io看起来比较成熟),比如MongoDB + Express.js + AngularJS + Node.js
  • 对于pipe理部分(新用户创build,loginpipe理):Java + Spring / Hibernate +普通MySQL + AngularJS
  • 使用Apache + Tomcat作为pipe理部分的Amazon EC2实例

你怎么看+一些问题:

  • 假装我会以不同的方式处理引擎部分和行政部分,这是疯狂的吗?
  • MEAN堆栈还可以处理所有的pipe理/loginfunction吗?
  • 假装我可以用Javascript(目前)有限的知识来学习MEAN堆栈是否疯狂? 当然,要学习它…我知道这里将会有一个安静的学习曲线,但是我已经准备好了。
  • 有没有一种简单的方法来整合Node.js和Java代码? 有人试过吗? 例如,我想利用Node.js的非阻塞function,但是例如调用Java方法来访问第三方API。

预先感谢您的build议。

尼古拉斯。

这将是一个巨大的事业。 这不好或不好,只是一个声明:)

有很多你提到的技术,每一个都会有一些学习曲线。 刚刚看了美国忍者战士昨晚,你正在学习曲线听起来很像“翘曲的墙”! 不要气馁,准备开始小,你会没事的。

你将不得不覆盖的三大块是:

  • 的NodeJS
  • MongoDB的
  • AngularJS

的NodeJS

网上有很多教程,你需要学习Javascript以及在NodeJS服务器上的含义。 Javascript的asynchronous特性与Java看起来非常不同(我知道,那也是我的转换)。 我喜欢的教程: Mixu的Node Book我喜欢的电子书: Node Beginner

MongoDB的

我自己还在研究这个,但是MongoDB不同于关系型SQL数据库。 你也需要在这里思考一下。 大量的教程在那里为MongoDB。

不过,我会说可以把NodeJS和SQL结合起来。 如果你这样学习,你可以一次转动所有的旋钮。 如果你想看到有用的东西,你可以像平常一样使用数据库。 在使用SQL数据库时,我喜欢使用knexJS 。 这很棒。

AngularJS

Angular是一个巨大的框架。 人们喜欢它。 一旦你知道它易于使用。 我读过它容易上手,然后更难掌握。 很多尝试和解决这个问题的途径,这里有一个我写的书的链接: 周末学习AngularJS

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

我对你提出的其他问题的想法

  • 假装我会以不同的方式处理引擎部分和行政部分,这是疯狂的吗?

你们可以把两者分开,但是如果这只是为了学习,就把所有的东西都放在一起。 MongoDB当然可以处理你的pipe理的东西。

  • MEAN堆栈还可以处理所有的pipe理/loginfunction吗?

是的。 一些框架也将其作为默认软件包。

  • 假装我可以用Javascript(目前)有限的知识来学习MEAN堆栈是否疯狂? 当然,要学习它…我知道这里将会有一个安静的学习曲线,但是我已经准备好了。

这并不疯狂,但学习曲线相当大。 考虑一个应用程序/目标将是你的好驱动。 另外,不要试图在第一次完成任何事情。 find一个看起来不错的NPM包,使用它,然后继续。 现在不要担心所有的细节。 在您的下一个应用程序上执行此操作,或者在您有function基准后执

  • 有没有一种简单的方法来整合Node.js和Java代码? 有人试过吗? 例如,我想利用Node.js的非阻塞function,但是例如调用Java方法来访问第三方API。

当然,一个Java客户端可以调用一个NodeJS服务器。 如果你创build了一个NodeJS API服务器,你可以编写一个Java客户端来testing它。 你甚至可以做从NodeJS到Java代码的其他疯狂的事情 ,但我build议现在留下Java。 对于很多networking资料(HTTP请求等),我想你会惊喜地发现,在NodeJS中做一些事情需要做的是什么,你需要在Java中做一个等价的事情。