Plan Szkolenia

Dzień 1 — Solidne podstawy Pythona i narzędzia

Cechy nowoczesnego Pythona i systemy typów

  • Podstawy systemów typów, generyki, Protocols i TypeGuard
  • Dataclasses, frozen dataclasses i omówienie attrs
  • Dopasowywanie wzorców (PEP 634+) i idiomatyczne użycie

Jakość kodu i narzędzia

  • Formatery kodu i linter: black, isort, flake8, ruff
  • Sprawdzanie typów statycznych za pomocą MyPy i pyright
  • Haki pre-commit i przepływy pracy deweloperskie

Zarządzanie projektem i pakietami

  • Zarządzanie zależnościami za pomocą Poetry i wirtualnych środowisk
  • Kompozycja pakietów, punkty wejścia i najlepsze praktyki wersjonowania
  • Budowanie i publikowanie pakietów na PyPI i prywatnych rejestrach

Dzień 2 — Wzorce projektowe i praktyki architektoniczne

Wzorce projektowe w Pythonie

  • Wzorce kreacyjne: Factory, Builder, Singleton (warianty Pythonic)
  • Wzorce strukturalne: Adapter, Facade, Decorator, Proxy
  • Wzorce zachowawcze: Strategy, Observer, Command

Zasady architektoniczne

  • Zasady SOLID zastosowane do baz kodu Pythona
  • Hexagonal/Clean Architecture i granice
  • Wzorce iniekcji zależności i zarządzania konfiguracją

Modularność i ponowne użycie

  • Projektowanie kodu biblioteki vs aplikacji
  • API, stabilne interfejsy i wersjonowanie semantyczne
  • Zarządzanie konfiguracją, sekretami i ustawieniami specyficznymi dla środowiska

Dzień 3 — Współbieżność, Async IO i wydajność

Współbieżność i równoległość

  • Podstawy wątkowości i implikacje GIL
  • Wielowątkowość i puli procesów dla zadań CPU-bound
  • Kiedy używać concurrent.futures vs multiprocessing

Asynchroniczne programowanie za pomocą asyncio

  • Wzorce async/await, pętla zdarzeń i anulowanie
  • Projektowanie asynchronicznych bibliotek i zgodność z synchronicznym kodem
  • Wzorce IO-bound, przepływ oporu i ograniczenie tempa

Profileowanie i optymalizacja

  • Narzędzia profileujące: cProfile, pyinstrument, perf, memory_profiler
  • Optymalizacja krytycznych ścieżek i użycie C-extensions/Numba tam, gdzie to odpowiednie
  • Pomiar opóźnienia, przepustowości i wykorzystania zasobów

Dzień 4 — Testowanie, CI/CD, monitorowanie i wdrażanie

Strategie testowania i automatyzacja

  • Testy jednostkowe i fixture za pomocą pytest; organizacja testów
  • Testowanie oparte na właściwościach z Hypothesis i testowanie kontraktowe
  • Mockowanie, monkeypatching i testowanie asynchronicznego kodu

CI/CD, wersjonowanie i monitorowanie

  • Integracja testów i bramek jakościowych do GitHub Actions/GitLab CI
  • Budowanie odwołalnych kontenerów za pomocą Docker i wieloetapowych kompilacji
  • Monitorowanie aplikacji: strukturalne rejestrowanie, metryki Prometheus i śledzenie

Zabezpieczenia, wzmocnienie i najlepsze praktyki

  • Audyt zależności, podstawy SBOM i skanowanie luk w zabezpieczeniach
  • Najlepsze praktyki programowania bezpiecznego: walidacja danych wejściowych i zarządzanie sekretami
  • Wzmocnienie w czasie wykonywania: ograniczenia zasobów, uprawnienia użytkowników i bezpieczeństwo kontenerów

Kapitalny projekt i przegląd

  • Team lab: projekt i implementacja małej usługi za pomocą wzorców z kursu
  • Testowanie, sprawdzanie typów, pakowanie i potok CI dla projektu
  • Końcowy przegląd, krytyka kodu i plan konkretnych polepszeń

Podsumowanie i dalsze kroki

Wymagania

  • Silne doświadczenie w programowaniu Pythona na poziomie średniozaawansowanym
  • Znajomość programowania obiektowego i podstawowego testowania
  • Doświadczenie w korzystaniu z linii poleceń i Git

Odbiorcy

  • Zaawansowani deweloperzy Pythona
  • Inżynierowie oprogramowania odpowiedzialni za jakość kodu Python i architekturę
  • Liderzy techniczni i inżynierowie MLOps/DevOps pracujący z bazami kodów Pythona
 28 godzin

Liczba uczestników


cena netto za uczestnika

Opinie uczestników (5)

Propozycje terminów

Powiązane Kategorie