Webapp con MEAN stack e Java


Sono stato uno sviluppatore Java/J2EE per alcuni anni, e sfortunatamente ultimamente non ho imparato molto a causa del contesto del mio lavoro quotidiano e della mia azienda.

Ecco perché ho deciso di affrontare il mio progetto personale, che avrebbe i seguenti dettagli/caratteristiche (il primo è il più prioritario)

  • App Web per gli utenti registrati
  • Necessità di recuperare informazioni da API di terze parti (si pensi Twitter, Facebook, Pinterest...)
  • Molti accessi simultanei alle stesse funzionalità (API information retrieval) allo stesso tempo
  • Accessibile tramite Web ed eventualmente tramite Cellulare
  • Cron/Quarzo a regolarmente (ogni notte?) inviare agli utenti le loro informazioni aggiornate via e-mail
  • Dashboard con informazioni in tempo reale
  • Notifiche via e-mail o web quando succede qualcosa (nuovo follower di Twitter...)

La mia conoscenza è la seguente:

  • Java / J2EE con un po ' di primavera / Ibernazione, molto tranquillo di Maven / Ibatis
  • Distribuisce su Tomcat / JBoss
  • HTML, CSS e Javascript, di base. Abbastanza per eseguire cose di base, ma non abbastanza per costruire un web reattivo e lucido per esempio

Le mie competenze trasversali:

  • Voglio imparare nuove tecniche
  • Ho bisogno di imparare nuovi tecnici (per aggiornare il mio CV)

Dopo aver letto un po ' di tranquillità su molte tecnologie disponibili, ho pensato quanto segue:

  • per la parte del motore (ovvero recuperare informazioni da terze parti, visualizzarlo sul web e mobile, inviare l'e-mail ogni sera...), stavo pensando a uno stack medio completo (sono più attento a significare.js anche se mean.io sembra più maturo) cioè MongoDB + Express.js + AngularJS + Nodo.js
  • per la parte amministrativa (creazione nuovi utenti, gestione login): Java + Spring / Hibernate + regular MySQL + AngularJS
  • Istanza Amazon EC2 con Apache + Tomcat per la parte amministrativa

Cosa ne pensi + Alcuni traccia smal:

  • È folle fingere che affronterò in modo diverso la parte del motore e la parte amministrativa?
  • Lo stack MEDIO potrebbe anche gestire tutte le funzionalità amministrative/di accesso?
  • È pazzesco fingere di poter imparare MEAN stack con (al momento) una conoscenza limitata di Javascript? Il punto, naturalmente, è quello di imparare... So che ci sarà una curva di apprendimento tranquilla, ma sono pronto per questo.
  • Esiste un modo semplice per integrare il nodo.js con Codice Java? qualcuno l'ha provato? Ad esempio, vorrei sfruttare le capacità non bloccanti del nodo.js, ma chiama il metodo Java per accedere all'API di terze parti, ad esempio.

Grazie in anticipo per il tuo consiglio.

Nicolas.

Author: nicolasdaudin, 2014-08-12

1 answers

Sarà un'impresa enorme. Questo non è buono o cattivo, solo una dichiarazione:)

Ci sono molte tecnologie che stai menzionando e ognuna avrà un po ' di curva di apprendimento. Avendo appena visto American Ninja Warrior la scorsa notte, stai imparando curva suona un po ' come il muro deformato! Non scoraggiarti, preparati a iniziare in piccolo e starai BENE.

I tre grandi pezzi che dovrai coprire sono:

  • NodeJS
  • MongoDB
  • AngularJS

NodeJS

Ci sono molti tutorial online e dovrai imparare Javascript e cosa significa su un server NodeJS. La natura asincrona di Javascript sarà molto diversa da Java (lo so, anche quella è stata la mia transizione). Un tutorial che mi piace: Il libro dei nodi di Mixu Un eBook che mi piace: Node Beginner

MongoDB

Ci sto ancora lavorando me stesso, ma MongoDB è diverso da un database SQL relazionale. Avrete bisogno di pensare un po ' diverso anche qui. Un sacco di tutorial là fuori per MongoDB.

Tuttavia, dirò che è possibile combinare NodeJS con SQL. Se si sta facendo questo per imparare, è possibile attivare tutte le manopole in una sola volta. Se vuoi vedere qualcosa che funziona, puoi semplicemente usare il DB come faresti normalmente. Mi piace usare knexJS quando si lavora con un database SQL. E impressionante.

AngularJS

Angular è un framework enorme. La gente lo adora. Facile da usare una volta che lo sai. Ho letto la sua facile per iniziare e poi più difficile da padroneggiare. Un sacco di percorsi per cercare di affrontare questo, ecco un link che ho libro segnato: Imparare AngularJS in un fine settimana

Detto questo, non avresti bisogno di usare Angular nella tua app. Alcuni framework potrebbero supportarlo e basare il loro backend NodeJS attorno a un frontend angolare, ma tu potresti usa le tue abilità di frontend esistenti (anche, gasp!, jQuery) per far sì che le tue pagine web guidino il tuo server backend.

I miei pensieri su altre domande che hai chiesto

  • È folle fingere che affronterò in modo diverso la parte del motore e la parte amministrativa?

Potresti separare i due, ma se questo è solo per imparare, fai tutto in uno. MongoDB può certamente gestire le tue cose amministrative.

  • Potrebbe lo stack MEDIO gestire anche tutte le funzionalità amministrative / di accesso?

Sì. Alcuni framework hanno anche quelli come pacchetti predefiniti.

  • È pazzesco fingere di poter imparare MEAN stack con (al momento) una conoscenza limitata di Javascript? Il punto, naturalmente, è quello di imparare... So che ci sarà una curva di apprendimento tranquilla, ma sono pronto per questo.

Non è pazzesco, ma la curva di apprendimento è abbastanza grande. Avere un app / obiettivo in mente sarà buona unità per voi. Inoltre, non cercare di fare tutto perfettamente la prima volta. Trova un pacchetto NPM che sembra abbastanza buono, usalo e vai avanti. Non preoccuparti di tutti i dettagli in questo momento. Fallo sulla tua prossima app o una volta che hai una linea di base funzionale.

  • Esiste un modo semplice per integrare il nodo.js con codice Java? qualcuno l'ha provato? Ad esempio, vorrei sfruttare le capacità non bloccanti del nodo.js, ma chiama il metodo Java per accedere all'API di terze parti per esempio.

Certo, un client Java può chiamare a un server NodeJS. Se è stato creato un server API NodeJS, è possibile scrivere un client Java per testarlo. Puoi anche fare altre cose folli da NodeJS al codice Java, ma suggerirei di lasciare Java alle spalle per ora. Per molte cose web (richieste HTTP e simili), penso che sarai piacevolmente sorpreso di quanto sia veloce fare qualcosa in NodeJS che cosa dovresti fare per un equivalente in Java.

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