Avanscoperta
DDD in produzione Workshop

DDD in produzione Workshop

Dai post-it al codice passando per CQRS, Event Sourcing e testing

Per poter sviluppare un sistema in stile DDD, che sia veramente reattivo, bisogna necessariamente passare per la strada che porta alla gestione degli eventi e che sia “message-driven”, nonché alla gestione dei long running process, al versionamento degli eventi e il loro testing.

Nel workshop DDD in produzione, impareremo con Alberto Acerbis e Alessandro Colla come gestire al meglio lo sviluppo di tale sistema, grazie a un esempio pratico, basato su un caso reale.

Target Audience

Il workshop si rivolge a software developers e tester che hanno una buona conoscenza di Domain-Driven Design e vogliono approfondire i temi CQRS, specification testing e Saga, lavorando hands-on su un caso pratico.

Al momento dell’iscrizione al corso, verrà regalata una copia digitale del libro Cronache di Domain-Driven Design (pubblicato da Avanscoperta).
La lettura della prima parte del libro, è un requisito per poter accedere e partecipare al corso.

Argomenti

  • Domain-Driven Design: Approfondiremo insieme concetti importanti quali entity, value objects, aggregate e bounded context.
  • EventStorming: Effettueremo l’analisi dell’applicativo che realizzeremo usando questo strumento estremamente potente e che deve far parte della cassetta degli attrezzi di ogni sviluppatore.
  • CQRS+ES: vedremo come è strutturato un sistema a comandi ed eventi e su quali principi si basa.
  • Realizzare un’applicazione: realizzeremo un sistema composto da microservizi che utilizzeranno un service bus per comunicare tra loro.
  • Esercizi di testing: scriveremo insieme gli specification test per testare gli eventi dell’applicazione e di conseguenza garantire il corretto comportamento del nostro dominio.
  • Long running process: realizzeremo un servizio che per operare deve attendere il verificarsi di più eventi distribuiti nel tempo;
  • Versioning degli eventi: vedremo come gestire eventi che evolvono nel tempo all’interno della nostra applicazione.

Programma

Le prime due mezze giornate saranno incentrate maggiormente sui problemi di design; nel corso delle rimanenti due mezze giornate lavoreremo in pairing in C# (Visual Studio 2017/2019, Visual Studio Code, Raider, etc.) per realizzare la nostra applicazione.

Agenda

Il workshop prevede l’alternanza continua di spiegazioni, esercizi (di gruppo e individuali) e discussioni. Ciascun giorno si aprirà con un recap del modulo precedente, con ampio spazio a domande e risoluzione di punti in sospeso.

Modulo 1

  • Descrizione del core domain e obiettivi del corso
  • EventStorming: perché è utile ed esercizi
  • Strategic patterns: scrittura codice ed esercizi.

Modulo 2

  • Tactical patterns e scrittura aggregati
  • Applicazione CQRS al progetto
  • Esercizi: scrittura aggregati.

Modulo 3

  • Applicazione Event Sourcing ed evoluzione del codice
  • Testing degli eventi
  • Evolviamo l’applicazione: come cambiano gli eventi al cambiare dei requisiti business?
  • Esercizi: come mantenere la compatibità dei vecchi eventi

Modulo 4

  • Versioning degli eventi
  • Long-running process (saga e process manager)
  • Applicazione finale: dove siamo arrivati
  • Q&A finale

Cosa impareremo

  • Trasformeremo alcune delle user story che emergeranno nella sessione di EventStorming in codice funzionante.
  • Svilupperemo due microservizi basati su CQRS ed Event Sourcing.
  • Impareremo a testare il dominio tramite l’applicazione dello specification testing.
  • Realizzazione di un long running process.
  • Gestione del versionamento di eventi che inevitabilmente evolvono nel sistema.

Come si svolge

Il corso si svolgerà online e in diretta per un massimo di 16 persone: i docenti 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 dei trainer completano il quadro formativo.

Perché partecipare

Lo scopo del corso è dimostrare che una cosa che sembra difficile non è poi così difficile. Con Alberto e Alessandro scopriremo perché le tecniche applicate durante il corso non devono fare paura.

F.A.Q.

Sono previsti requisiti minimi per poter partecipare a questo corso?
È richiesta una base di conoscenza di Domain-Driven Design.
A tal fine, e per far sì che arriviamo in aula con le basi ben chiare, a tutti i partecipanti verrà inviata in omaggio la versione digitale del libro Cronache di Domain-Driven Design. È richiesta la lettura della prima parte del libro prima dell’inizio del corso. Una parte degli esercizi sarà basata sul libro.

Quale linguaggio verrà usato per gli esercizi durante il corso?
C#. La conoscenza del linguaggio C# è un vantaggio, ma non è fondamentale per la comprensione dei concetti che verranno illustrati durante il workshop.
Potrai scrivere gli esercizi con un liguaggio a tua scelta, fermo restando che per gli esempi e le spiegazioni i docenti useranno C#.

Cosa bisogna fare prima del corso?
Avere installato Event Store, RabbitMQ e MongoDB. Forniremo anticipatamente, per email, tutte le istruzioni per arrivare preparati e non perdere tempo con le installazioni durante il corso.

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.

Info pratiche sul workshop

Lingua: italiano.
Numero massimo di partecipanti: 16.
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.

Porta il corso in azienda

Contattaci utilizzando il form in fondo alla pagina per chiedere informazioni sull’erogazione in forma privata e personalizzabile del corso DDD in produzione.

Testimonials…

Un corso che bilancia teoria e pratica in grado di tirar fuori tanti spunti interessanti.Antonio Catucci

Il workshop permette di ottenere un boost importante riguardo le tematiche trattate.
Ottimo il taglio del corso. Una giusta dose di teoria unita a esercizi pratici per mettere a terra quanto appreso.
Ho molto apprezzato l’introduzione ad alcuni aspetti del DDD e EventStorming.
I trainer hanno molta esperienza e allo stesso tempo sono disponibili nel rispondere ai dubbi emersi.

In definitiva, mi permetto di suggerire questo corso a chiunque voglia approfondire CQRS/ES.Luca Giuberti

Alberto e Alessandro mi hanno aiutato a demistificare il pattern, e a rivolgere particolare attenzione su alcuni dettagli fondamentali. Il focus sul testing credo sia una delle armi vincenti del corso.Luca Gentile

Ottimo corso, molto pratico, aiuta ad approfondire come gestire il testing di un sistema che usa l’architettura CQRS + Event Sourcing in modo da poterne sfruttare al massimo le peculiarità, rimanendo fiduciosi sulla correttezza della soluzione.Alberto Barrilà

Non capita tutti i giorni di avere a disposizione l’esperienza di due professionisti che raccontano in maniera chiara CQRS + Event Sourcing.Marcello Santambrogio

Esperienza favolosa! Prima sperimenti come trovare la soluzione al problemi, poi ti viene mostrata una possibile via e alla fine lo implementi a modo tuo. :-)Gianni Bombelli

Alberto Acerbis

Alberto è Software Engineer presso intré, dove si occupa di architetture, sviluppo e formazione.

Alessandro Colla

Alessandro è CTO di Evoluzione Telematica. Appassionato sviluppatore software da oltre 20 anni, costantemente alla "ricerca della verità" da quando ha iniziato a interessarsi alle pratiche Agile e al Domain-Driven Design.

APPROFONDIMENTI

Come testare il comportamento del dominio: il video del remote meetup con Alberto Acerbis e Alessandro Colla.

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!