Struttura del corso
Giorno 1 — Fondamenti Robusti di Python e Strumenti
Funzionalità Moderne di Python e Typing
- Basi del typing, generics, Protocol e TypeGuard
- Dataclass, frozen dataclass e panoramica su attrs
- Pattern matching (PEP 634+) e uso idiomatico
Qualità del Codice e Strumenti
- Formattatori e linter: black, isort, flake8, ruff
- Type checking statico con MyPy e pyright
- Pre-commit hooks e workflow per gli sviluppatori
Gestione dei Progetti e Packaging
- Gestione delle dipendenze con Poetry e ambienti virtuali
- Struttura dei pacchetti, entry points e migliori pratiche per le versioni
- Creazione e pubblicazione dei pacchetti su PyPI e registri privati
Giorno 2 — Design Pattern e Pratiche Architetturali
Design Pattern in Python
- Pattern creativi: Factory, Builder, Singleton (varianti Pythonic)
- Pattern strutturali: Adapter, Facade, Decorator, Proxy
- Pattern comportamentali: Strategy, Observer, Command
Principi Architetturali
- Principi SOLID applicati alle codebase Python
- Architettura esagonale/clean e confini
- Pattern di iniezione delle dipendenze e gestione della configurazione
Modularità e Riutilizzo
- Progettazione di codice per librerie rispetto alle applicazioni
- API, interfacce stabili e versionamento semantico
- Gestione della configurazione, dei segreti e delle impostazioni specifiche per ambiente
Giorno 3 — Concorrenza, IO Asincrona e Prestazioni
Concorrenza e Parallelismo
- Fondamenti del threading e implicazioni del GIL
- Multiprocessing e pool di processi per task CPU-bound
- Quando utilizzare concurrent.futures rispetto a multiprocessing
Programmazione Asincrona con asyncio
- Pattern async/await, event loop e cancellazione
- Progettazione di librerie asincrone e interoperabilità con il codice sincrono
- Pattern IO-bound, backpressure e rate limiting
Profiling e Ottimizzazione
- Strumenti di profiling: cProfile, pyinstrument, perf, memory_profiler
- Ottimizzazione dei percorsi caldi e uso di estensioni C/Numba dove appropriato
- Misurazione della latenza, del throughput e dell'utilizzo delle risorse
Giorno 4 — Testing, CI/CD, Osservabilità e Deployment
Strategie di Testing e Automazione
- Test unitari e fixture con pytest; organizzazione dei test
- Property-based testing con Hypothesis e test contrattuali
- Mocking, monkeypatching e test del codice asincrono
CI/CD, Release e Monitoraggio
- Integrazione di test e gate di qualità in GitHub Actions/GitLab CI
- Creazione di contenitori riproducibili con Docker e build multi-stage
- Osservabilità delle applicazioni: log strutturati, metriche Prometheus e tracing
Sicurezza, Rafforzamento e Migliori Pratiche
- Verifica delle dipendenze, basi degli SBOM e scansione delle vulnerabilità
- Pratiche di coding sicure per la validazione degli input e la gestione dei segreti
- Rafforzamento del runtime: limiti delle risorse, diritti utente e sicurezza dei contenitori
Progetto Capstone e Revisione
- Laboratorio di squadra: progettazione e implementazione di un piccolo servizio utilizzando i pattern del corso
- Test, type-checking, packaging e pipeline CI per il progetto
- Revisione finale, critica del codice e piano di miglioramento attuabile
Riepilogo e Prossimi Passi
Requisiti
- Solida esperienza di programmazione Python di livello intermedio
- Familiarità con la programmazione orientata agli oggetti e il testing di base
- Esperienza nell'uso della riga di comando e Git
Pubblico
- Sviluppatori Python senior
- Ingegneri del software responsabili della qualità del codice e dell'architettura Python
- Lead tecnici e ingegneri MLOps/DevOps che lavorano con codebase Python
Recensioni (2)
tutto era perfetto
Florin Vrincianu
Corso - Python Programming Fundamentals
Traduzione automatica
Gli esercizi pratici correlati al contenuto aiutano davvero a comprendere meglio ogni argomento. Inoltre, lo stile di inizio lezione con una presentazione teorica e continuazione con esercizi pratici è buono e utile per collegare il materiale presentato inizialmente.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Corso - Introduction to Data Science and AI using Python
Traduzione automatica