Un nuovo microservizio PHP per il mondo della scuola
Senior Software Engineer · Madisoft · EdTech · Remoto
Contesto
Madisoft realizza software per il mondo della scuola. Il mio ruolo è progettare e sviluppare un nuovo microservizio PHP robusto ed evolvibile, contribuendo alla definizione dell'architettura e delle linee guida tecniche.
Sfida
- Introdurre un nuovo microservizio nello stack esistente senza interrompere l'evoluzione del prodotto.
- Definire confini di contesto chiari su un dominio ricco come quello della scuola digitale.
- Diffondere nel team pratiche di qualità del codice e test automatici come abitudine, non come fase finale.
Soluzione
- Progettazione e implementazione del nuovo microservizio applicando DDD, architettura esagonale e CQRS + Event Sourcing.
- Modernizzazione progressiva del codice esistente con strategia a piccoli passi, sempre in produzione.
- Contributo attivo alle linee guida tecniche e alle code review trasversali ai team.
Formazione
- Promozione di TDD e clean code nel ciclo di sviluppo quotidiano.
- Supporto al team su design pattern e architettura applicativa.
Architettura
PHP, Symfony, PostgreSQL, DDD, architettura esagonale e CQRS + Event Sourcing.
- PHP
- Symfony
- PostgreSQL
- DDD
- CQRS+ES
- Architettura esagonale
Decisioni
Architettura esagonale come default
Domini isolati dal mondo esterno tramite porte e adapter: cambiare provider, database o framework non costringe a riscrivere la logica di business.
CQRS ed Event Sourcing dove portano valore
Separare scrittura e lettura e conservare la storia degli eventi rende esplicita l'evoluzione del dominio senza confondere responsabilità diverse.