Struttura del corso

Giorno 1 — Fondamenti Robusti di Python e Strumentazione

Funzionalità Moderne di Python e Typing

  • Nozioni di base sul typing, generics, Protocols e TypeGuard
  • Dataclasses, dataclasses immutabili (frozen) e panoramica su attrs
  • Pattern matching (PEP 634+) e utilizzo idiomatrico

Qualità del Codice e Strumentazione

  • Formattatori e linter: black, isort, flake8, ruff
  • Controllo statico dei tipi con MyPy e pyright
  • Ganci pre-commit e workflow per sviluppatori

Gestione del Progetto e Packaging

  • Gestione delle dipendenze con Poetry e environment virtuali
  • Layout dei pacchetti, entry points e best practices sulla versioning
  • Creazione e pubblicazione di pacchetti su PyPI e registri privati

Giorno 2 — Pattern di Progettazione e Pratiche Architettoniche

Pattern di Progettazione in Python

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

Principi Architettonici

  • Principi SOLID applicati a codebases Python
  • Architettura Esagonale/Clean e confini
  • Pattern di iniezione delle dipendenze e gestione della configurazione

Modularità e Reutilizzo

  • Progettare codice per librerie vs applicazioni
  • API, interfacce stabili e versioning semantico
  • Gestire la configurazione, i segreti e le impostazioni specifiche dell'ambiente

Giorno 3 — Concorrenza, Async IO e Prestazioni

Concorrenza e Parallelismo

  • Fondamenti del threading e implicazioni della GIL
  • Multiprocessing e pool di processi per task CPU-bound
  • Quando usare concurrent.futures vs multiprocessing

Programmazione Async con asyncio

  • Pattern async/await, event loop e cancellazione
  • Progettazione di librerie async e interoperabilità con codice sincrono
  • Pattern IO-bound, backpressure e rate limiting

Profiling e Ottimizzazione

  • Strumenti di profiling: cProfile, pyinstrument, perf, memory_profiler
  • Ottimizzare i percorsi caldi e l'uso di C-extensions/Numba quando appropriato
  • Misurare latenza, throughput e utilizzo delle risorse

Giorno 4 — Testing, CI/CD, Osservabilità e Distribuzione

Strategie di Testing e Automazione

  • Test unitari e fixtures con pytest; organizzazione dei test
  • Testing basato su proprietà con Hypothesis e testing contrattuale
  • Mocking, monkeypatching e testing di codice asincrono

CI/CD, Release e Monitoraggio

  • Integrazione dei test e delle gate di qualità in GitHub Actions/GitLab CI
  • Creazione di container riproducibili con Docker e build multi-stage
  • Osservabilità dell'applicazione: logging strutturato, metriche Prometheus e tracciamento

Sicurezza, Hardening e Best Practices

  • Audit delle dipendenze, nozioni di base su SBOM e scansione delle vulnerabilità
  • Pratiche di codifica sicura per la validazione degli input e la gestione dei segreti
  • Hardening runtime: limiti delle risorse, diritti utente e sicurezza del container

Progetto Capstone e Revisione

  • Laboratorio di team: progettare e implementare un piccolo servizio utilizzando pattern del corso
  • Testing, type-checking, packaging e pipeline CI per il progetto
  • Revisione finale, critica del codice e piano di miglioramento praticabile

Riassunto e Passi Successivi

Requisiti

  • Solida esperienza di programmazione Python a livello intermedio
  • Familiarità con la programmazione orientata agli oggetti e i test di base
  • Esperienza nell'uso della riga di comando e Git

Pubblico di Riferimento

  • Sviluppatori Python senior
  • Ingegneri software responsabili della qualità del codice Python e dell'architettura
  • Responsabili tecnici e ingegneri MLOps/DevOps che lavorano con codebase Python
 28 Ore

Numero di Partecipanti


Prezzo per Partecipante

Recensioni (5)

Corsi in Arrivo

Categorie relative