Szkolenie: Python optymalizacja, refactoring i tuning wydajności
Uczestnicy szkolenia zapoznają się z tematyką optymalizacji, refactoringu kodu, a także tuningu wydajnościowego. Zostaną omówione tematy związane z manualną i automatyczną identyfikacją wąskich gardeł w kodzie, a także o możliwości zastosowania współbieżności w celu przyspieszenia wykonywania algorytmów.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:2 dni (16h)
Kod kursu:PYTHON/OPT
Python optymalizacja, refactoring i tuning wydajności
Cele szkolenia
Poznanie procesu optymalizacji kodu
Identyfikacja wąskich gardeł w kodzie
Poznanie procesu i technik refaktoringu
Poznanie procesu i technik tuningu wydajnościowego
Wprowadzenie do tematyki współbieżności
Dla kogo?
Inżynierów oporgramowania i programistów
Inżynierów jakości i testerów
Inżynierów wydajności
Zalety
Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Wymagania
Umiejętność wytwarzania oprogramowania w języku Python
Znajomość obiektowego paradygmatu wytwarzania oprogrogramowania
Umiejętność biegłego posługiwania się komputerem
Umiejętność korzystania z konsoli systemu operacyjnego
Znajomość podstawowych koncepcji związanych z infrastrukturą
Wiedza o procesach obejmujących wytwarzanie oprogramowania
Uczestnictwo w co najmniej jednym projekcie związanym z wytwarzaniem oprogramowania
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Wprowadzenie
Python 3.11, 3.12, 3.13 i projekt Faster CPython
Type Annotation i kompilacja kodu Python do C shared objects (mypyc)
Rodzaje testów na przykładach
Analiza statyczna
Obciążeniowe
Refaktoring
Środowisko IDE (PyCharm) i jego możliwości
Podstawowe i zaawansowane opcje refactoringowe
Refactoring w środowiku bez testów
Praca z legacy code
Refactoring cudzego kodu
Dobre praktyki
Proces Code Review
Optymalizacja
Pojęcia złożoności kodu (pamięciowa, obliczeniowa, cyklomatyczna, kognitywna)
Definicja długu technicznego
Ręczna identyfikacja złożonego kodu
Automatyczna identyfikacja złożonego kodu
Silosy kompetencyjne vs. Collective code ownership
Pojęcie emerging architecture
Tuning wydajnościowy
Techniki pomiaru wydajności kodu
Microbenchmarking i jego pułapki
Profiling kodu i wizualizacja wyników
Identyfikacja wąskich gardeł
Testy obciążeniowe
Automatyzacja testów wydajnościowych w procesie CI/CD
Wprowadzenie do współbieżności i przetwarzania równoległego
GIL - Global Interpreter Lock
Programowanie wieloprocesowe
Programowanie wielowątkowe
Programowanie asynchroniczne