Skip to content

5. Conclusione

Abbiamo realizzato la seguente applicazione client/server:

Image

Per arrivare alla versione finale del codice, abbiamo dovuto illustrare molti aspetti dei framework AngularJS e Spring 4. Questo documento può quindi essere utilizzato per imparare a utilizzare questi due framework. La sezione 1.3 spiega dove trovare il codice e come utilizzarlo.

Abbiamo dimostrato che l'applicazione client/server è utilizzabile in vari ambienti:

  • come applicazione web tradizionale;
  • come binario eseguibile su emulatori Android;

Ancora una volta, questo tutorial non è esaustivo nella trattazione dei due framework. Per Angular, dovremmo certamente trattare gli strumenti di test che lo accompagnano. Il testing è una fase essenziale nella scrittura di un'applicazione. Gli strumenti associati ad Angular consentono di automatizzare questi test e di incorporarli in un processo di integrazione continua.

Da questo lavoro, ricavo due punti chiave:

  • Scrivere il servizio web Spring è stato moderatamente complicato. Fin dall'inizio avevo familiarità con i concetti di Spring. Ho incontrato difficoltà solo con la messa in sicurezza del servizio web e successivamente con la gestione delle intestazioni HTTP CORS, due aree che non conoscevo;
  • Scrivere il client Angular è stato molto più complesso per diversi motivi:
    • Non avevo una conoscenza sufficiente del linguaggio JavaScript e delle sue funzionalità;
    • Ho avuto difficoltà a comprendere come funziona la programmazione asincrona all'interno del browser. La pensavo come su un server, dove questa asincronia si ottiene attraverso l'uso simultaneo di più thread. Nel browser, c'è un solo thread e le attività asincrone vengono elaborate in modo sequenziale piuttosto che in parallelo. Più specificamente, le attività asincrone possono essere eseguite in parallelo (ad esempio, più richieste HTTP), ma gli eventi che attivano al completamento vengono elaborati in modo sequenziale. Non c'è quindi alcuna esecuzione concorrente da gestire, insieme ai numerosi problemi che ne derivano;
    • Angular è un framework ricco di concetti (MVC, direttive, servizi, ambito del modello, ecc.). Ci vuole molto tempo per impararlo;
    • Angular non impone un metodo di sviluppo specifico. Pertanto, per ottenere lo stesso risultato, è possibile utilizzare architetture diverse. Questo crea confusione. Mi trovo più a mio agio con framework chiusi in cui tutti utilizzano gli stessi modelli di progettazione. Ho quindi cercato costantemente di replicare i modelli di progettazione che utilizzo sul lato server. Sono soddisfatto del risultato perché ritengo che sia riproducibile. È proprio quello che cercavo. Tuttavia, non ho idea se mi sia allontanato o meno dalle "best practice" di Angular;

Serge Tahé, luglio 2014.