Contattataci

Struttura del corso

Giorno 1 — Fondamenta robuste e strumenti per Python

Funzionalità moderne di Python e tipizzazione dinamica

  • Nozioni base sulla tipizzazione, generici, Protocols e TypeGuard
  • Classi dati, classi dati immutabili e panoramica su attrs
  • Pattern matching (PEP 634+) e modalità di utilizzo idiomatiche<\/li>

Qualità del codice e strumenti di sviluppo

  • Formattazione e linting: black, isort, flake8, ruff
  • Analisi statica dei tipi tramite MyPy e pyright
  • Hook pre-commit e gestione ottimizzata del flusso di lavoro dello sviluppatore

Gestione progetti e packaging

  • Gestione delle dipendenze con Poetry e ambienti virtuali
  • Struttura dei package, punti di ingresso e best practice nella versionamento
  • Creazione ed espansione di pacchetti su PyPI o registry privati

Giorno 2 — Pattern di progettazione e pratiche architettoniche

Pattern di progettazione in Python

  • Pattern creativi: Factory, Builder, Singleton (varianti tipicamente utilizzate in Python)
  • Pattern strutturali: Adapter, Facade, Decorator, Proxy
  • Pattern comportamentali: Strategy, Observer, Command

Principi architettonici

  • Applicazione dei principi SOLID ai progetti Python
  • Architetture a forma esagonale e Clean Architecture: confini logici e separazione delle responsabilità
  • Pattern di iniezione delle dipendenze e gestione configurazioni

Modularità e riutilizzo del codice

  • Progettazione di librerie rispetto a applicazioni veri e propri
  • API stabili, interfacce ben definite e versionamento semantico
  • Gestione delle configurazioni, delle chiavi segrete e delle impostazioni dipendenti dall’ambiente

Giorno 3 — Concorrenza, Async IO e ottimizzazione prestazionale

Concorrenza e parallelismo in Python

  • Fondamenti della gestione dei thread e implicazioni legate al GIL
  • Multiprocessing e uso di pool di processi per operazioni intensive su CPU
  • Scelta tra concurrent.futures e multiprocessing a seconda del caso d’uso

Programmazione asincrona con asyncio

  • Pattern async/await, ciclo di eventi e gestione delle cancellazioni
  • Realizzazione di librerie asincrone e interoperabilità tra codice sincrono e asincrono
  • Gestione del traffico I/O, limitazione della velocità di esecuzione e prevensione dell’overload dei servizi

Profiling e ottimizzazione delle prestazioni

  • Strumenti di profiling: cProfile, pyinstrument, perf, memory_profiler
  • Ottimizzazione delle porzioni più critiche del codice e uso di estensioni in C o Numba quando opportuno
  • Misurazione della latenza, del throughput e dell’utilizzo delle risorse sistemiche

Giorno 4 — Testing, CI/CD, osservabilità e deployment

Strategie di testing e automazione

  • Unit test e fixture in pytest; organizzazione razionale dei test
  • Testing basato su proprietà con Hypothesis e test contrattuali
  • Mocking, monkeypatching e testing di codice asincrono

Integrazione CI/CD, release e monitoraggio sistemico

  • Integrazione dei test e controlli qualitativi nei workflow GitHub Actions o GitLab CI
  • Creazione di container riproducibili con Docker tramite builds multi-stage
  • Osservabilità applicativa: logging strutturato, metriche Prometheus e tracciamento distribuito

Sicurezza, rafforzamento del codice e best practice

  • Audit delle dipendenze, SBOM di base e rilevamento vulnerabilità nel codice
  • Pratiche di coding sicuro per la validazione degli input e gestione segreta dei dati riservati
  • Rafforzamento runtime: limiti sui consumi di risorse, controllo dei diritti d’accesso e protezione dei container

Progetto finale e revisione generale

  • Laboratorio di gruppo: progettazione ed implementazione di un piccolo servizio sfruttando i pattern trattati nel corso
  • Sviluppo dei test, controllo tipologico, packaging e realizzazione della pipeline CI per il progetto stesso
  • Riveduta finale del codice, analisi critica ed elenco di azioni concrete per il miglioramento continuo

Conclusione e prossimi passi da intraprendere

Requisiti

  • Solide competenze di programmazione Python a livello intermedio
  • Conoscenza della programmazione orientata agli oggetti e dei test di base
  • Esperienza nell’utilizzo del terminale e di Git

Destinatari

  • Sviluppatori Python senior
  • Ingegneri software responsabili della qualità del codice e dell’architettura nei progetti Python
  • Responsabili tecnici ed ingegneri MLOps/DevOps che lavorano con codebase Python
 28 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (2)

Corsi in Arrivo

Categorie relative