Intrati in legatura
 Durata 28 ore

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

Numărul de participanți


Pret per participant

Mărturii (2)

Cursuri viitoare

Categorii înrudite