Schița de curs
Ziua 1 — Fundamente solide de Python și tooling
Funcționalități moderne Python și typing
- Bazele typing-ului, generice, Protocols și TypeGuard
- Dataclasses, frozen dataclasses și prezentare generală attrs
- Pattern matching (PEP 634+) și utilizare idiomatică
Calitatea codului și tooling
- Formatters și lintere de cod: black, isort, flake8, ruff
- Static type checking cu MyPy și pyright
- Pre-commit hooks și workflowuri pentru dezvoltatori
Managementul proiectelor și packaging
- Gestionarea dependențelor cu Poetry și medii virtuale
- Structura pachetelor, entry points și bune practici de versionare
- Construirea și publicarea pachetelor pe PyPI și în registry-uri private
Ziua 2 — Design patterns și practici de arhitectură
Design patterns în Python
- Patternuri creaționale: Factory, Builder, Singleton (variante pythonice)
- Patternuri structurale: Adapter, Facade, Decorator, Proxy
- Patternuri comportamentale: Strategy, Observer, Command
Principii de arhitectură
- Principii SOLID aplicate codebase-urilor Python
- Hexagonal/Clean Architecture și limite
- Patternuri de dependency injection și gestionarea configurării
Modularitate și reutilizare
- Proiectarea codului de bibliotecă vs. cod de aplicație
- API-uri, interfețe stabile și versionare semantică
- Gestionarea configurării, a secretelor și a setărilor specifice mediului
Ziua 3 — Concurență, Async IO și performanță
Concurență și paralelism
- Fundamentele threading-ului și implicațiile GIL
- Multiprocessing și process pools pentru sarcini CPU-bound
- Când să folosești concurrent.futures vs multiprocessing
Programare async cu asyncio
- Patternuri async/await, event loop și anulare
- Proiectarea bibliotecilor async și interoperabilitatea cu codul sync
- Patternuri IO-bound, backpressure și rate limiting
Profiling și optimizare
- Tooluri de profiling: cProfile, pyinstrument, perf, memory_profiler
- Optimizarea hot paths și utilizarea extensiilor C/Numba acolo unde este cazul
- Măsurarea latenței, throughput-ului și a utilizării resurselor
Ziua 4 — Testare, CI/CD, observabilitate și deployment
Strategii de testare și automatizare
- Unit testing și fixtures cu pytest; organizarea testelor
- Property-based testing cu Hypothesis și contract testing
- Mocking, monkeypatching și testarea codului asincron
CI/CD, release și monitorizare
- Integrarea testelor și a quality gates în GitHub Actions/GitLab CI
- Construirea de containere reproductibile cu Docker și multi-stage builds
- Observabilitatea aplicațiilor: structured logging, metrici Prometheus și tracing
Securitate, hardening și bune practici
- Auditarea dependențelor, bazele SBOM și scanarea vulnerabilităților
- Practici de codare securizată pentru validarea inputului și gestionarea secretelor
- Runtime hardening: limite de resurse, drepturi ale utilizatorilor și securitatea containerelor
Proiect final și recapitulare
- Laborator în echipă: proiectează și implementează un serviciu mic folosind patternurile din curs
- Testare, type-checking, packaging și pipeline CI pentru proiect
- Recapitulare finală, code critique și plan de îmbunătățire acționabil
Rezumat și pașii următori
Cerințe
- Experiență solidă de programare Python de nivel intermediar
- Familiaritate cu programarea orientată pe obiecte și testarea de bază
- Experiență în utilizarea liniei de comandă și a Git
Public țintă
- Dezvoltatori Python seniori
- Ingineri software responsabili de calitatea și arhitectura codului Python
- Technical leads și ingineri MLOps/DevOps care lucrează cu codebase-uri Python
Mărturii (2)
totul a fost perfect
Florin Vrincianu
Curs - Python Programming Fundamentals
Tradus de catre o masina
Exercițiile practice legate de conținut ajută cu adevărat la înțelegerea mai profundă a fiecărui subiect. De asemenea, stilul de a începe cursul cu o prezentare teoretică și de a continua cu exerciții practice este bun și util pentru a lega conținutul de ce s-a prezentat anterior.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Curs - Introduction to Data Science and AI using Python
Tradus de catre o masina