Schița de curs
Ziua 1 — Fundamente Robuste și Instrumente Python
Caracteristici Moderne ale Python și Tipizare
- Bazele tipizării, generice, Protocoale și TypeGuard
- Clase de date, clase de date înghețate și prezentare generală a attrs
- Potrivirea modelelor (PEP 634+) și utilizare idiomatică
Calitatea Codului și Instrumente
- Formatare și analiză a codului: black, isort, flake8, ruff
- Verificarea statică a tipurilor cu MyPy și pyright
- Hook-uri pre-commit și fluxuri de lucru ale dezvoltatorilor
Managementul Proiectelor și Ambalare
- Gestionarea dependențelor cu Poetry și medii virtuale
- Layoutul pachetelor, punctele de intrare și bunele practici de versionare
- Construirea și publicarea pachetelor pe PyPI și registre private
Ziua 2 — Modele de Proiectare și Practici de Arhitectură
Modele de Proiectare în Python
- Modele de creare: Fabrica, Constructor, Singleton (variante Pythonice)
- Modele structurale: Adaptor, Fațadă, Decorator, Proxy
- Modele comportamentale: Strategie, Observer, Comandă
Principii de Arhitectură
- Principiile SOLID aplicate bazelor de cod Python
- Arhitectura Hexagonală/Curată și limite
- Modele de injecție a dependențelor și gestionarea configurației
Modularitate și Reutilizare
- Proiectarea codului de bibliotecă vs aplicație
- API-uri, interfețe stabile și versionare semantică
- Gestionarea configurației, secretelor și setărilor specifice mediului
Ziua 3 — Concurență, Async IO și Performanță
Concurență și Paralelism
- Fundamentele thread-urilor și implicațiile GIL
- Multiprocessing și pool-uri de procese pentru sarcini legate de CPU
- Când să folosiți concurrent.futures vs multiprocessing
Programare Async cu asyncio
- Modele async/await, bucla de evenimente și anulare
- Proiectarea bibliotecilor async și interoperabilitatea cu codul sincron
- Modele legate de IO, backpressure și limitarea ratei
Profilare și Optimizare
- Instrumente de profilare: cProfile, pyinstrument, perf, memory_profiler
- Optimizarea căilor fierbinți și utilizarea extensiilor C/Numba acolo unde este potrivit
- Măsurarea latenței, a debitului și a utilizării resurselor
Ziua 4 — Testare, CI/CD, Observabilitate și Implementare
Strategii de Testare și Automatizare
- Testare unitară și fixture-uri cu pytest; organizarea testelor
- Testare bazată pe proprietăți cu Hypothesis și testare de contract
- Mocking, monkeypatching și testarea codului asincron
CI/CD, Lansare și Monitorizare
- Integrarea testelor și a porților de calitate în GitHub Actions/GitLab CI
- Construirea containerelor reproducibile cu Docker și build-uri multi-etape
- Observabilitatea aplicațiilor: jurnalizare structurată, metrici Prometheus și tracing
Securitate, Consolidare și Bune Practici
- Auditarea dependențelor, bazele SBOM și scanarea vulnerabilităților
- Practici de codare sigură pentru validarea intrărilor și gestionarea secretelor
- Consolidarea runtime-ului: limite de resurse, drepturi de utilizator și securitatea containerelor
Proiect Capstone & Recenzie
- Laborator de echipă: proiectați și implementați un mic serviciu folosind modele din curs
- Testare, verificare tip, ambalare și pipeline CI pentru proiect
- Recenzie finală, critică a codului și plan de îmbunătățiri acționabil
Rezumat și Pași Următori
Cerințe
- Experiență solidă de programare Python la nivel intermediar
- Familiaritate cu programarea orientată pe obiecte și testarea de bază
- Experiență în utilizarea liniei de comandă și Git
Publicul țintă
- Dezvoltatori Python seniori
- Ingineri de software responsabili de calitatea și arhitectura codului Python
- Responsabili tehnici și ingineri MLOps/DevOps care lucrează cu baze de cod Python
Mărturii (2)
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
Exemplele/exercițiile perfect adaptate domeniului nostru
Luc - CS Group
Curs - Scaling Data Analysis with Python and Dask
Tradus de catre o masina