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
Opinie uczestników (5)
Fakt, że mamy więcej ćwiczeń praktycznych wykorzystujących dane podobne do tych, które używamy w naszych projektach (obrazy satelitarnego typu rasteryjnego)
Matthieu - CS Group
Szkolenie - Scaling Data Analysis with Python and Dask
Przetłumaczone przez sztuczną inteligencję
Uważam, że trener był bardzo kompetentny i odpowiadał na pytania z pewnością, co pomagało w lepszym zrozumieniu materiału.
Jenna - TCMT
Szkolenie - Machine Learning with Python – 2 Days
Przetłumaczone przez sztuczną inteligencję
Bardzo dobre przygotowanie i kompetencje trenera, idealna komunikacja po angielsku. Kurs był praktyczny (ćwiczenia + udostępnianie przykładów przypadków zastosowania)
Monika - Procter & Gamble Polska Sp. z o.o.
Szkolenie - Developing APIs with Python and FastAPI
Przetłumaczone przez sztuczną inteligencję
Wyjaśnienie
Wei Yang Teo - Ministry of Defence, Singapore
Szkolenie - Machine Learning with Python – 4 Days
Przetłumaczone przez sztuczną inteligencję
Trener tworzy szkolenia dostosowane do tempa uczestników.
Farris Chua
Szkolenie - Data Analysis in Python using Pandas and Numpy
Przetłumaczone przez sztuczną inteligencję