Le Guardiane delle Architetture
Abstract
La complessità di un monolite che ci sfugge di mano ci spinge verso le lussuose promesse di indipendenza, alta coesione e basso accoppiamento dei microservizi. Eppure, troppo spesso, il percorso verso i microservizi ci porta a replicare e persino ad accentuare gli stessi problemi architetturali che cercavamo di lasciarci alle spalle.
Questo workshop è un invito a guardare oltre il paradigma architetturale scelto e le mode del momento, per concentrarsi sulla qualità intrinseca del design: si tocca con mano come costruire sistemi software con architetture semplici e robuste, che rimangono resilienti e manutenibili nel tempo.
L’ingrediente segreto per prevenire il degrado architetturale in un monolite o nei microservizi, risiede nella capacità di verificare attivamente la salute della nostra modularità. Vi presento i migliori guardiani delle architetture disponibili sul mercato: le Architectural Fitness Functions (AFF). Proveremo insieme a scriverle e a integrarle nel vostro flusso di lavoro, trasformando le regole architetturali da astratte raccomandazioni a rigidi requisiti verificabili.
Si scrive codice per costruire un monolite o un sistema di microservizi (chi lo può dire!) capace di evolvere nel tempo, rimanendo resiliente e manutenibile a lungo, con la certezza che l’architettura rimanga sana.
Cosa hanno imparato i partecipanti
Al termine di questo workshop avrai acquisito strumenti pratici per far sì che la tua architettura rimanga un’alleata della qualità del codice e non un vincolo da subire.
In particolare, scoprirai come:
- Progettare “Sustainably Working Software”: spostare il focus dal semplice “far funzionare il codice” al “disegnare codice che duri nel tempo”, prevenendo il debito tecnico e il degrado della struttura.
- Padroneggiare le Architectural Fitness Functions (AFF): comprendere la teoria e la pratica delle AFF per automatizzare i controlli architetturali direttamente all’interno della suite di test e della pipeline di CI/CD.
- Tutelare la modularità: applicare verifiche automatiche per preservare la coesione, evitare accoppiamenti indebiti e mantenere i confini dei moduli sempre puliti, indipendentemente dallo stile architetturale scelto.
- Evolvere il sistema in sicurezza: guidare il refactoring e le scelte di design attraverso passaggi incrementali e misurabili, con la certezza che l’architettura rispetti sempre i requisiti desiderati.