Web应用程序与MEAN堆栈和Java

时间:2014-08-12 17:22:11

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

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

这就是为什么我决定解决我自己的个人项目,该项目具有以下细节/特征(第一个是最优先的)

  • 登录用户的网络应用
  • 需要从第三方API检索信息(想想Twitter,Facebook,Pinterest ......)
  • 同时对同一功能(API信息检索)进行多次并发访问
  • 可通过网络访问,最终通过手机访问
  • Cron / Quartz定期(每晚?)通过电子邮件向用户发送最新信息
  • 带有实时信息的仪表板
  • 发生事件时通过电子邮件或网络发布通知(新的Twitter粉丝......)

我的知识如下:

  • 带有一点Spring / Hibernate的Java / J2EE,安静很多Maven / Ibatis
  • 在Tomcat / JBoss上部署
  • HTML,CSS和Javascript,基本。足以执行基本的东西,但还不足以构建响应迅速且有光泽的网络,例如

我的软技能:

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

在阅读了一些关于许多可用技术的安静之后,我想到了以下内容:

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

您如何看待+有些问题:

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

提前感谢您的建议。

尼古拉斯。

1 个答案:

答案 0 :(得分:13)

这将是一项艰巨的任务。这不是好事或坏事,只是一个声明:)

你提到了很多技术,每一项技术都会有一些学习曲线。昨晚刚刚观看了美国忍者武士,你的学习曲线听起来很像翘曲墙!不要气馁,准备从小做起,你就行了。

您需要涵盖的三件大事是:

  • 的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

的链接。

那就是说,你不需要在app中使用Angular。一些框架可能支持它,并将它们的NodeJS后端基于Angular前端,但你可以使用你现有的前端技能(甚至,喘气!,jQuery)来制作你的网站页面驱动你的后端服务器。

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

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

你可以将两者分开,但如果这只是为了学习,那么就把所有事情都集中在一起。 MongoDB当然可以处理您的管理内容。

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

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

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

这并不疯狂,但学习曲线非常大。考虑到应用程序/目标将是您的良好驱动力。此外,不要尝试第一次完美地完成所有事情。找一个看起来很不错的NPM包,使用它,继续前进。现在不要担心所有细节。在您的下一个应用程序上执行此操作,或者在您具有功能基准后执行此操作。

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

当然,Java客户端可以调用NodeJS服务器。如果您创建了NodeJS API服务器,则可以编写Java客户端来测试它。你甚至可以做other crazy things from NodeJS to Java code,但我建议暂时离开Java。对于很多网络内容(HTTP请求等),我认为你会惊喜地发现在NodeJS中做一些事情的速度有多快,你需要为Java中的等价物做些什么。