CodeJam 2016: un breve resoconto

Lunedì 17 e martedì 18 ottobre sono stato a Codejam 2016, uno dei workshop organizzati da Avanscoperta. In sostanza due giorni dedicati interamente al coding, con alla base una sola domanda:

Come sviluppereste un’applicazione web nel 2016, avendo la possibilità di scegliere uno stack tecnologico senza compromessi e senza freni inibitori?

Sono state due giornate molto intense, dove si è discusso e lavorato tanto, con risultati più che soddisfacenti. Alla fine dei due giorni abbiamo creato Veggy, un time-tracker basato sulla famosissima tecnica del pomodoro. Abbiamo costruito Veggy sperimentando due tecnologie on the edge:

Nel front-end: React, la libreria di Facebook specializzata nella creazione di interfacce modulari.
Nel back-end: Elixir, un linguaggio basato sulla erlang virtual machine (beam) che abbina la potenza di erlang ad un linguaggio moderno.
Il tutto condito da un’architettura ad eventi, CQRS oriented.

Per chi è interessato, Veggy è distribuito su Git.

CodeJam 2016 - Un breve resoconto

Giorno  1

Dopo una breve introduzione sul perché del corso, la mattinata è stata dedicata al backend: Gabriele Lana ci ha illustrato le caratteristiche della erlang virtual machine e di Elixir. Processi, comunicazione tramite messaggi, immutabilità e “actor model” ci hanno aperto la strada verso il magico mondo della beam, nome proprio della erlang virtual machine.

Dopo l’impatto, duro, con lo shift di paradigma (elixir come erlang è un linguaggio funzionale) abbiamo esplorato come questo modo di affrontare i problemi ben si sposi con l’architettura CQRS/event-driven, sia a livello teorico sia con il coding. Se non ti sporchi le mani non ti diverti.
Per riprenderci dalla mattinata, nel pomeriggio abbiamo affrontato un tema più easy: Emanuele DelBono ci ha introdotti al favoloso mondo di React e della componentizzazione delle interfacce. L’idea che sta alla base della libreria di Facebook è quella di creare una serie di componenti riutilizzabili e di comporli in modo da creare viste complesse a partire da elementi base.

Uno dei momenti più attesi e apprezzati da tutti i partecipanti è stata anche la serata social.  Seduti al tavolo di una tipica osteria bolognese abbiamo continuato la discussione, condita da un ottimo pranzo a base di pasta al ragù e stinco al forno. Anche il momento del pasto è stato per tutti un’occasione per scambiarsi pareri e dubbi su quanto emerso nella giornata.

Giorno 2

Dopo una buona nottata ristoratrice abbiamo ripreso lo sviluppo. Gabriele ha proseguito il discorso backend introducendo l’integrazione della componente read-model attraverso le proiezioni dell’event store. La discussione si è poi spostata su come sfruttare al meglio i processi e i supervisori per gestire eventuali crash. Parallelamente Emanuele ci ha illustrato i reducers, i componenti di flux che si occupano di aggiornare lo stato dei componenti e il sistema di routing. Infine nell’ultima parte del corso abbiamo potuto lavorare su alcune particolarità del sistema sviluppato: abbiamo affrontato la gestione delle saghe, le macro (tutto in elixir è una macro) e la gestione dell’offline.

Conclusioni

Sono stati due giorni impegnativi ed intensi, ma soprattutto stimolanti. Sono tanti infatti gli spunti da approfondire e che genereranno sicuramente discussioni interessanti in azienda.
Un grazie ai docenti per il loro impegno e ad Avanscoperta per aver organizzato il corso.

Qui trovate il link alla scheda del corso, dove trovate tutte le informazioni utili.

Interessante? Chiedici una consulenza