Plan Szkolenia
Dzień 1 — Solidne fundamenty Pythona i narzędzia
Nowoczesne funkcje Pythona i typowanie
- Podstawy typowania, generyki, Protocols i TypeGuard
- Dataclass, zamarznięte dataclass oraz przegląd atrybutów (attrs)
- Dopasowanie wzorców (PEP 634+) i idiomatyczne użycie
Jakość kodu i narzędzia
- Formatery i linterzy kodu: black, isort, flake8, ruff
- Statyczne sprawdzanie typów za pomocą MyPy i pyright
- Haki pre-commit i przepływy pracy developerów
Zarządzanie projektami i pakowanie
- Zarządzanie zależnościami za pomocą Poetry i wirtualnych środowisk
- Struktura pakietów, punkty wejściowe i najlepsze praktyki w zakresie versioningu
- Budowanie i publikowanie pakietów w PyPI i prywatnych rejestrach
Dzień 2 — Wzorce projektowe i praktyki architektoniczne
Wzorce projektowe w Pythonie
- Wzorce tworzenia: Factory, Builder, Singleton (warianty pythoniczne)
- Wzorce strukturalne: Adapter, Facade, Decorator, Proxy
- Wzorce behawioralne: Strategy, Observer, Command
Zasady architektoniczne
- Zastosowanie zasad SOLID w kodzie Python
- Architektura heksagonalna/czysta (Clean) i granice
- Wzorce wstrzykiwania zależności i zarządzanie konfiguracją
Modułowość i ponowne użycie
- Projektowanie kodu bibliotecznego vs. aplikacyjnego
- API, stabilne interfejsy i semantyczne versioning
- Obsługa konfiguracji, tajemnic (secrets) i ustawień specyficznych dla środowiska
Dzień 3 — Współbieżność, wejście/wyjście asynchroniczne i wydajność
Współbieżność i równoległość
- Podstawy wątkowania i implikacje GIL
- Multiprocessing i procesowe pulę dla zadań obciążających CPU
- Kiedy używać concurrent.futures vs multiprocessing
Programowanie asynchroniczne z asyncio
- Wzorce async/await, pętla zdarzeń i anulowanie
- Projektowanie bibliotek asynchronicznych i interoperacyjność z kodem synchronicznym
- Wzorce wejścia/wyjścia ograniczonego przez IO, backpressure i limitowanie szybkości
Profilowanie i optymalizacja
- Narzędzia do profilowania: cProfile, pyinstrument, perf, memory_profiler
- Optymalizacja gorących ścieżek i stosowanie rozszerzeń C/Numba, jeśli to odpowiednie
- Pomiar opóźnienia, przepustowości i wykorzystania zasobów
Dzień 4 — Testy, CI/CD, obserwowalność i wdrażanie
Strategie testowania i automatyzacja
- Testy jednostkowe i fixtuwry z pytestem; organizacja testów
- Testowanie oparte na właściwościach z Hypothesis i testowanie kontraktów
- Mockowanie, monkeypatching i testowanie kodu asynchronicznego
CI/CD, wydawanie i monitorowanie
- Integrowanie testów i bram jakości w GitHub Actions/GitLab CI
- Budowanie odtwarzalnych kontenerów z Dockerem i buildami wielostopniowymi
- Obserwowalność aplikacji: strukturalne logowanie, metryki Prometheus i śledzenie (tracing)
Bezpieczeństwo, wzmacnianie i najlepsze praktyki
- Audyt zależności, podstawy SBOM i skanowanie luk bezpieczeństwa
- Bezpieczne praktyki kodowania dla walidacji wejścia i zarządzania tajemnicami
- Wzmacnianie środowiska uruchomieniowego: limity zasobów, prawa użytkownika i bezpieczeństwo kontenerów
Projekt końcowy i przegląd
- Ćwiczenie zespołowe: zaprojektowanie i zaimplementowanie małej usługi z użyciem wzorców z kursu
- Testy, sprawdzanie typów, pakowanie i pipeline CI dla projektu
- Ostateczny przegląd, krytyka kodu i plan dalszych działań
Podsumowanie i kolejne kroki
Wymagania
- Silne doświadczenie w programowaniu w Pythonie na poziomie średniozaawansowanym
- Znajomość programowania obiektowego i podstaw testowania
- Doświadczenie w używaniu wiersza poleceń oraz Git
Grupa docelowa
- Senior Python developers
- Inżynierowie oprogramowania odpowiedzialni za jakość i architekturę kodu Python
- Liderzy techniczni oraz inżynierowie MLOps/DevOps pracujący z bazami kodu Python
Wybierz dostępny termin kursu
- Formularz Zdalne
- Język polski
- Szkolenie Kursy otwarte
- Data rozpoczęcia 2027-01-11
- Czas trwania 4 dni (28 godzin)
Cena netto za uczestnika
Opinie uczestników (3)
Zajeczia praktyczne związane z treścią naprawdę pomagają lepiej zrozumieć każdy temat. Ponadto, styl rozpoczęcia zajęć od wykładu i kontynuowania praktycznymi ćwiczeniami jest dobry i pomocny do połączenia się z wcześniejszym wykładem.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Szkolenie - Introduction to Data Science and AI using Python
Przetłumaczone przez sztuczną inteligencję
Przygotowanie materiałów i kodu (z komentarzami). Spójność procesu nauczania i progresji tematów. Przygotowanie wykładowcy.
Piotr - ArcelorMittal
Szkolenie - Machine Learning with Python – 4 Days
Instruktor był bardzo dostępny, aby odpowiedzieć na wszystkie rodzaje pytań, które zadawałem.
Caterina - Stamtech
Szkolenie - Developing APIs with Python and FastAPI
Przetłumaczone przez sztuczną inteligencję