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
Recensioni (5)
Il fatto di avere più esercizi pratici utilizzando dati più simili a quelli che utilizziamo nei nostri progetti (immagini satellitari in formato raster)
Matthieu - CS Group
Corso - Scaling Data Analysis with Python and Dask
Traduzione automatica
I thought the trainer was very knowledgeable and answered questions with confidence to clarify understanding.
Jenna - TCMT
Corso - Machine Learning with Python – 2 Days
Very good preparation and expertise of a trainer, perfect communication in English. The course was practical (exercises + sharing examples of use cases)
Monika - Procter & Gamble Polska Sp. z o.o.
Corso - Developing APIs with Python and FastAPI
The explaination
Wei Yang Teo - Ministry of Defence, Singapore
Corso - Machine Learning with Python – 4 Days
Trainer develops training based on participant's pace