Bądźmy w kontakcie

Plan Szkolenia

Dzień 1 — Solidne Podstawy Pythona i Narzędzia

Nowoczesne Funkcje Pythona i Typowanie

  • Podstawy typowania, generyki, Protokoły i TypeGuard
  • Dataclasses, zamrożone dataclasses i przegląd attrs
  • Dopasowanie wzorców (PEP 634+) i idiomatyczne użycie

Jakość Kodu i Narzędzia

  • Formatowanie kodu i lintery: black, isort, flake8, ruff
  • Statyczne sprawdzanie typów z MyPy i pyright
  • Haki pre-commit i przepływy pracy programistów

Zarządzanie Projektami i Pakietami

  • Zarządzanie zależnościami z Poetry i środowiskami wirtualnymi
  • Struktura 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: Fabryka, Budowniczy, Singleton (warianty Pythona)
  • Wzorce strukturalne: Adapter, Fasada, Dekorator, Proxy
  • Wzorce behawioralne: Strategia, Obserwator, Polecenie

Zasady Architektoniczne

  • Zasady SOLID zastosowane w kodzie Pythona
  • Architektura Hexagonal/Clean i granice
  • Wzorce iniekcji zależności i zarządzanie konfiguracją

Modularność i Ponowne Użycie

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

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

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

  • Podstawy wątków i implikacje GIL
  • Multiprocessing i pule procesów dla zadań związanych z CPU
  • Kiedy używać concurrent.futures vs multiprocessing

Programowanie Asynchroniczne z asyncio

  • Wzorce async/await, pętla zdarzeń i anulowanie
  • Projektowanie bibliotek asynchronicznych i współdziałanie z kodem synchronicznym
  • Wzorce związane z IO, backpressure i ograniczanie szybkości

Profilowanie i Optymalizacja

  • Narzędzia do profilowania: cProfile, pyinstrument, perf, memory_profiler
  • Optymalizacja gorących ścieżek i używanie rozszerzeń C/Numba tam, gdzie to odpowiednie
  • Pomiar opóźnienia, przepustowości i wykorzystania zasobów

Dzień 4 — Testowanie, CI/CD, Obserwowalność i Wdrożenie

Strategie Testowania i Automatyzacja

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

CI/CD, Wydania i Monitorowanie

  • Integracja testów i bram jakości z GitHub Actions/GitLab CI
  • Budowanie powtarzalnych kontenerów z Dockerem i wieloetapowymi buildami
  • Obserwowalność aplikacji: strukturalne logowanie, metryki Prometheus i śledzenie

Bezpieczeństwo, Zabezpieczenia i Najlepsze Praktyki

  • Audyt zależności, podstawy SBOM i skanowanie pod kątem podatności
  • Bezpieczne praktyki kodowania dla walidacji wejścia i zarządzania tajemnicami
  • Zabezpieczanie środowiska uruchomieniowego: limity zasobów, prawa użytkowników i bezpieczeństwo kontenerów

Projekt Końcowy i Podsumowanie

  • Zespół lab: zaprojektuj i zaimplementuj małą usługę, korzystając z wzorców z kursu
  • Testowanie, sprawdzanie typów, pakowanie i potok CI dla projektu
  • Ostateczna recenzja, krytyka kodu i plan działań naprawczych

Podsumowanie i Następne Kroki

Wymagania

  • Silne doświadczenie w programowaniu w Pythonie na poziomie średnio zaawansowanym
  • Znajomość programowania obiektowego i podstaw testowania
  • Doświadczenie w korzystaniu z linii poleceń i Git

Odbiorcy

  • Doświadczeni programiści Pythona
  • Inżynierowie oprogramowania odpowiedzialni za jakość kodu Pythona i architekturę
  • Liderzy techniczni i inżynierowie MLOps/DevOps pracujący z kodem Pythona
 28 godzin

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (2)

Propozycje terminów

Powiązane Kategorie