Avanscoperta
Actor Model Workshop

Actor Model Workshop

Per affrontare le sfide legate a concorrenza e scalabilità in modo alternativo

Abstract

I requisiti funzionali e non funzionali delle applicazioni moderne ci hanno portato a progettare e utilizzare nuovi modelli architetturali che risolvono i problemi posti dal business.

L’Actor Model è un modello concettuale per l’implementazione di applicazioni concorrenti. È una delle alternative possibili e ha un approccio molto innovativo ma basato su solidi principi di programmazione.

Sebbene la sua nascita risalga a quasi cinquant’anni fa, pochi linguaggi e framework lo supportano in modo completo e, tra i pochi, il candidato principe è Elixir. Le applicazioni scritte in questo linguaggio girano su una virtual machine (la BEAM) che ha molti dei costrutti necessari all’implementazione corretta dell’Actor Model.

Conoscere l’Actor Model, saperne usare i costrutti e i pattern, permette di affrontare problemi legati alla concorrenza e alla scalabilità in un modo diverso, ed è questo l’obiettivo del workshop con Emanuele DelBono.

Target Audience

Il workshop si rivolge a software developer e architetti che vogliono conoscere un nuovo modo di progettare e implementare le loro applicazioni. È richiesta una conoscenza dei concetti base di Elixir e della libreria OTP.

Programma

Il workshop ha l’obiettivo di fornire ai partecipanti gli strumenti necessari a valutare quando un’architettura basata sull’Actor Model è conveniente e utile per la risoluzione del problema.
Insieme realizzeremo un’applicazione completa usando i pattern del mondo dell’Actor Model. Questi verranno presentati, valutati e analizzati in un processo costruttivo step-by-step durante le sessioni.
In ogni sessione ci sarà spazio per la teoria ma sempre supportata dal codice che verrà scritto durante il workshop. Al termine di ogni giornata verranno lasciate alcune user story da implementare in autonomia tra una sessione e l’altra.

Agenda

Sessione 1

  • Introduzione ai concetti di attore e messaggio,
  • Presentazione del dominio dell’applicazione da implementare,
  • Setup del progetto,
  • Primo test (health-check),
  • Modellazione dei primi elementi tramite attori.

Sessione 2

  • Introduzione dei supervisor,
  • Gestione del ciclo di vita e interazione tra attori tramite il process manager.

Sessione 3

  • Persistenza dello stato,
  • Pool di processi per aumentare la scalabilità.

Sessione 4

  • Long running task,
  • Conclusione del progetto,
  • Considerazioni finali, Q&A e accenni a framework alternativi.

Cosa impareremo

  • Cos’è l’Actor Model e come si differenzia da altri approcci
  • Che tipo di problemi sono adatti a essere risolti con l’Actor Model
  • Quali sono i componenti base di un’architettura basata sull’Actor Model
  • Che relazioni esistono tra il Domain-Driven Design e l’Actor Model
  • Come si organizzano grosse applicazioni che utilizzano l’Actor Model
  • Come si testa un’applicazione basata sull’Actor Model
  • Quali alternative esistono ad Elixir/Erlang.

Expect to get your hands dirty

Il workshop avrà un taglio decisamente pratico, ogni partecipante dovrà dotarsi del proprio editor preferito e degli strumenti necessari ad implementare l’applicazione.
Fin dalla prima sessione i partecipanti dovranno implementare parti dell’applicazione seguendo le user stories predisposte.
Dedicheremo anche una parte del tempo a domande puntuali, per discutere approfonditamente le soluzioni implementate.

Come si svolge

Il corso si svolgerà online e in diretta per un massimo di 12 persone: il docente e tutti i partecipanti saranno in video conferenza e avranno a disposizione una serie di strumenti digitali per interagire tra di loro e lavorare hands-on.

Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo.
Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.
Non sarà un corso passivo, fatto solo di slide e video pre-registrati.

Applicheremo alcuni principi del metodo Training from the back of the room, con prevalenza di attività su lectures.
Alle poche definizioni teoriche si affiancano numerosi esercizi ed attività pratiche.
La condivisione tra i partecipanti ed il supporto del trainer completano il quadro formativo.

F.A.Q.

Cosa devo installare prima del corso?
Elixir 1.11, un editor tipo VsCode, Git, docker.

È un workshop per principianti o per esperti?
Sebbene gli argomenti vengano introdotti partendo dalle basi, è vivamente consigliato avere una conoscenza base del linguaggio Elixir e di alcuni elementi della libreria OTP.

Non conosco le basi di Elixir, da dove inizio?

Scarica gratuitamente il libro Elixir Succintly di Emanuele DelBono per imparare o ripassare le basi di Elixir.

Cosa devo assolutamente avere per potermi iscrivere a questo corso online?
Se possiedi un computer/tablet, una rete stabile (almeno 20 Mbps in download e 10 Mbps in upload), cuffie, microfono e videocamera, allora puoi iscriverti al corso senza problemi. Un paio di settimane prima del corso ti invieremo tutte le informazioni sugli strumenti che useremo e come accedervi.
Per la rete, prova a fare uno Speed Test.
Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo. Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.

N.B.

Il workshop verrà confermato al raggiungimento dei numeri minimi di partecipanti utili alla sua attivazione. Invieremo comunicazione agli iscritti 10-15 giorni prima del workshop.

Last chance! L’ultimo giorno utile per acquistare il biglietto per questo workshop è martedì 22 marzo 2022. Se non raggiungiamo i numeri minimi di partecipanti richiesti per attivarlo, il corso non sarà confermato e verrà posticipato… non aspettare all’ultimo per comprare il tuo biglietto!
Prima raggiungiamo i numeri minimi utili alla sua attivazione, prima saremo in grado di confermare il corso e garantirne l’esecuzione.

Info pratiche sul workshop

Lingua: italiano.
Numero massimo di partecipanti: 12.
Strumenti e postazione: il corso si svolgerà online e in diretta, attraverso l’uso di alcuni strumenti digitali. Una volta confermato, riceverai tutti i dettagli su come accedere al corso e interagire con il docente e gli altri partecipanti, e su come prepararti al meglio.
È consigliato che ciascun partecipante segua il corso dalla sua postazione: è preferibile non condividere il laptop e la stanza con altre persone e colleghi per una migliore esperienza da remoto.

Testimonials

Un super workshop, che ti fa tornare a casa con la voglia di riscrivere il tuo progetto in Elixir!Federico Gandellini

Un corso molto denso e fortemente hands-on: il miglior modo per capire è fare, per cui lo consiglierei a chi è interessato a Elixir, alla gestione della concorrenza, o comunque ad aggiungere un nuovo tool al proprio armamentario.Mauro Bartolomeoli

Questo corso permette di misurarsi con uno modo differente di modellare le applicazioni software. Il tutto è arricchito dall’utilizzo di un linguaggio estremamente ergonomico!Michele Capra

A great starting point to solve concurrencies’ problems by taking advantage of the OTP platform. Emanuele is a great instructor.Luca Gentile

Un ottimo aiuto per alleggerire la curva di apprendimento, focalizzando l’attenzione sulle cose importanti dell’Actor Model.Emanuele De Cupis

Come unire in un solo workshop un ottimo primer su Elixir e un modello di programmazione per sistemi concorrenti/distribuiti? Chiedendolo a Emanuele Delbono!Marcello Santambrogio

Emanuele DelBono

Emanuele è un architetto e sviluppatore con esperienza decennale nella realizzazione di applicazioni e servizi web.

Da sempre interessato a imparare nuovi paradigmi e nuove metodologie, negli ultimi anni si sta dedicando all'analisi, alla progettazione e alla realizzazione di applicazioni applicazioni enterprise utilizzando Elixir come linguaggio di programmazione.

Convinto ricercatore del Clean Code, è anche docente sulle tematiche di design del codice e del Test-Driven Development.

APPROFONDIMENTI

Introduzione all’Actor Model: il video del remote meetup con Emanuele DelBono.

Guarda il video Emanuele DelBono e Gabriele Lana Costruire una web app con React ed Elixir, intervistati da Alberto Brandolini.

Leggi l’intervista a Emanuele DelBono sul nostro blog: Vi raccontiamo cos’è CodeJam Workshop.

Chi siamo, in breve :)

Avanscoperta è un ecosistema in espansione fatto di professionisti con una grande passione per l’apprendimento: ci piace imparare cose nuove e scambiare esperienze e idee, esplorando territori finora inesplorati in ambito software, nella sua accezione più ampia possibile.

Selezioniamo con attenzione gli argomenti più rilevanti e i migliori docenti da tutto il mondo, e diamo particolare importanza alle tecniche di insegnamento, preferendo approcci pratici e coinvolgenti.
Unisciti a noi!

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!







    NEWSLETTER

    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?

    ISCRIVITI ALLA NEWSLETTER :-)

    Iscriviti alla newsletter!