Webapp avec pile moyenne et Java


Je suis développeur Java/J2EE depuis quelques années maintenant, et malheureusement ces derniers temps je n'ai pas beaucoup appris à cause du contexte de mon travail quotidien et de mon entreprise.

C'est pourquoi j'ai décidé de m'attaquer à mon propre projet personnel, qui aurait les détails/fonctionnalités suivantes (les premiers sont les plus prioritaires)

  • Application Web pour les utilisateurs connectés
  • Besoin de récupérer des informations à partir d'API tierces (pensez à Twitter, Facebook, Pinterest...)
  • Beaucoup accès simultané aux mêmes fonctionnalités (récupération d'informations API) en même temps
  • Accessible via le Web et éventuellement via le Mobile
  • Cron/Quartz à régulièrement (tous les soirs?) envoyer aux utilisateurs leurs informations mises à jour par e-mail
  • Tableau de bord avec des informations en temps réel
  • Notifications par e-mail ou sur le Web lorsque quelque chose se produit (nouvel abonné Twitter...)

Ma connaissance, est la suivante:

  • Java / J2EE avec un peu de printemps / Hibernation, calme beaucoup de Maven / Ibatis
  • Se déploie sur Tomcat / JBoss
  • HTML, CSS et Javascript, de base. Assez pour effectuer des choses de base, mais pas assez pour construire un web réactif et brillant par exemple

Mes compétences générales:

  • Je veux apprendre de nouvelles technologies
  • J'ai besoin d'apprendre de nouvelles technologies (pour mettre à jour mon CV)

Après avoir lu calme un peu sur de nombreuses technologies disponibles, j'ai pensé ce qui suit:

  • pour la partie moteur (c'est-à-dire récupérer des informations auprès d'un tiers, affichez - le sur le Web et le mobile, envoyez l'e-mail tous les soirs...), je pensais à une pile moyenne complète (je suis plus attaché à signifier.js même si mean.io regardez plus mature) c'est-à-dire MongoDB + Express.js + AngularJS + Noeud.js
  • pour la partie administrative (création de nouveaux utilisateurs, gestion des login): Java + Spring/Hibernate + MySQL régulier + AngularJS
  • Instance Amazon EC2 avec un Apache + Tomcat pour la partie administrative

Qu'en pensez-vous + Certains questions:

  • Est-ce fou de prétendre que je vais aborder différemment la partie moteur et la partie administrative?
  • La pile MOYENNE pourrait-elle également gérer toutes les fonctionnalités administratives/de connexion?
  • Est-il fou de prétendre que je peux apprendre MEAN stack avec (pour le moment) une connaissance limitée de Javascript? Le point est bien évidemment de l'apprendre... Je sais qu'il y aura une courbe d'apprentissage tranquille, mais je suis prêt pour cela.
  • Existe-t-il un moyen facile d'intégrer le nœud.js avec Code Java? quelqu'un a essayé? Par exemple, je voudrais profiter des capacités non bloquantes du nœud.js, mais appelez la méthode Java pour accéder à l'API tierce par exemple.

Merci d'avance pour vos conseils.

Nicolas.

Author: nicolasdaudin, 2014-08-12

1 answers

Ce sera une énorme entreprise. Ce n'est pas bon ou mauvais, juste une déclaration:")

Il y a beaucoup de technologies que vous mentionnez et chacune aura un peu une courbe d'apprentissage. Après avoir regardé American Ninja Warrior hier soir, vous apprenez que curve ressemble beaucoup au Mur déformé! Ne vous découragez pas, préparez-vous à commencer petit, et tout ira bien.

Les trois gros morceaux que vous aurez à couvrir sont:

  • NodeJS
  • MongoDB
  • AngularJS

NodeJS

Il existe de nombreux tutoriels en ligne et vous devrez apprendre Javascript et ce que cela signifie sur un serveur NodeJS. La nature asynchrone de Javascript sera très différente de Java (je sais, c'était aussi ma transition). Un tutoriel que j'aime: Mixu's Node Book Un eBook que j'aime: Node Beginner

MongoDB

Je travaille toujours là-dessus moi-même, mais MongoDB est différent d'une base de données SQL relationnelle. Vous aurez besoin de penser un peu différemment ici. Beaucoup de tutoriels là-bas pour MongoDB.

Cependant, je dirai qu'il est possible de combiner NodeJS avec SQL. Si vous faites cela pour apprendre, vous pouvez tourner tous les boutons à la fois. Si vous voulez voir quelque chose fonctionner, vous pouvez simplement utiliser la base de données comme vous le feriez normalement. J'aime utiliser knexJS lorsque vous travaillez avec une base de données SQL. C'est impressionnant.

AngularJS

Angulaire est un grand cadre. Les gens l'aiment. Facile à utiliser une fois que vous le savez. J'ai lu que c'était facile à démarrer, puis plus difficile à maîtriser. Beaucoup de chemins pour essayer d'aborder celui-ci, voici un lien que j'ai book marqué: Apprenez AngularJS en un week-end

Cela dit, vous n'auriez pas besoin d'utiliser Angular dans votre application. Certains frameworks pourraient le supporter et baser leur backend NodeJS autour d'un frontend angulaire, mais vous pourriez utilisez vos compétences frontend existantes (même, halètement!, jQuery) pour que vos pages Web conduisent votre serveur principal.

Mes pensées sur d'autres questions que vous avez posées

  • Est-ce fou de prétendre que je vais aborder différemment la partie moteur et la partie administrative?

Vous pouvez séparer les deux, mais si c'est juste pour apprendre, faites tout en un. MongoDB peut certainement gérer vos affaires administratives.

  • Pourrait la pile MOYENNE traitez également toutes les fonctionnalités administratives/de connexion?

Oui. Certains frameworks les ont également comme packages par défaut.

  • Est-il fou de prétendre que je peux apprendre MEAN stack avec (pour le moment) une connaissance limitée de Javascript? Le point est bien évidemment de l'apprendre... Je sais qu'il y aura une courbe d'apprentissage tranquille, mais je suis prêt pour cela.

Ce n'est pas fou, mais la courbe d'apprentissage est assez grande. Avoir une application / objectif à l'esprit sera bon lecteur pour vous. Aussi, n'essayez pas de tout faire parfaitement la première fois. Trouvez un package NPM qui semble assez bon, utilisez-le et passez à autre chose. Ne vous inquiétez pas de tous les détails en ce moment. Le faire sur votre prochaine application, ou une fois que vous avez une référence fonctionnelle.

  • Existe-t-il un moyen facile d'intégrer le nœud.js avec du code Java? quelqu'un a essayé? Par exemple, je voudrais profiter des capacités non bloquantes du nœud.js, mais appelez la méthode Java pour accéder à l'API tierce pour exemple.

Bien sûr, un client Java peut appeler à un serveur NodeJS. Si vous avez créé un serveur API NodeJS, vous pouvez écrire un client Java pour le tester. Vous pouvez même faire d'autres choses folles de NodeJS au code Java, mais je suggérerais de laisser Java derrière pour l'instant. Pour beaucoup de choses Web (requêtes HTTP et similaires), je pense que vous serez agréablement surpris de la rapidité avec laquelle il est nécessaire de faire quelque chose dans NodeJS que ce que vous auriez besoin de faire pour un équivalent en Java.

 12
Author: clay, 2014-08-12 20:34:01