XP: Code Review i dobre praktyki inżynieryjne
Czas trwania szkolenia:2 dni (16h)
Kod kursu:XP/CR
Poziom zaawansowania:
Szkolenie na zamówienie
Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne wyłącznie na zamówienie.
- Dostosowany program
- Indywidualna wycena
- Dowolny termin
O szkoleniu XP: Code Review i dobre praktyki inżynieryjne
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
Dla kogo?
- Inżynierowie oprogramowania
- Inżynierowie jakości
- Team-leaderzy
- Architekci
Wymagania
- Dobra znajomość programowania w dowolnym języku programowania
- Znajomość paradygmatu obiektowego
- Umiejętność korzystania z systemu kontroli wersji Git
- Praktyczna wiedza z zakresu tworzenia testów automatycznych
Zalety
- Dostrzeganie problemów w kodzie
- 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
Cele szkolenia
- Skuteczna komunikacja problemów z kodem w zespole
- Analiza kodu źródłowego i skupianie się na najważniejszych problemach
- Interakcja z systemem Code Review
- Automatyzacja wspierająca Code Review
Program
Praktyki developerskie a praktyki projektowe
- Praktyki projektowe (Scrum, Kanban, XP, Lean)
- Praktyki developerskie (TDD, S.O.L.I.D., CI/CD, Code Review/Pull Request, DevOps)
Feature i bugfix branch
- Git, Github Flow i Git Flow
- Strategia budowania branchy
- Statyczna analiza kodu Pull Requestów
- Strategie repozytoriów: Fork, Central Repo, Army model
Praktyka
- Spaghetti code
- Zależności w kodzie i między modułami
- S.O.L.I.D.
- TDD: test first vs test last development
- Czym w praktyce jest dług techniczny
- Ekosystem narzędziowy
- Refactoring legacy systemów
- Budowanie bazy wiedzy jako wynik Code Review
- Code Review jako element Collective Code Ownership
FAQ
- Kto powinien być zaangażowany w Code Review?
- Ile czasu poświęcić na Code Review?
- Czy Code Review jest potrzebne przy TDD?
- Jak wielkość elementów w backlog wpływa na Code Review?
- Jak uniknąć wąskiego gardła w postaci Code Review?
- Czy zawsze należy robić Code Review?
- Czy można zautomatyzować proces Code Review?
- Na co warto zwrócić uwagę w Code Review?
- Jakiej wielkości zmiany poddawać Code Review?
- Jak komunikować problem z kodem?
- Jak blokować scalenie kodu, który zawiera błędy?
- Jak robić Code Review na żyjącym branchu?
- Notyfikacje i jak pozostać na bieżąco ze zmianami?
- Jak unikać silosów kompetencyjnych za pomocą Code Review?
Code Review
- Systemy do Code Review, ich wady i zalety
- Unified diff vs side-by-side
- Komentarze i taski
- Pair programming vs Code Review
- Pull Request vs Merge Request
- Dobre praktyki Code Review
- Rozwiązywanie konfliktów w systemie kontroli wersji
- Składnia Markdown i reStructuredText
Podstawy optymalizacji i wydajności systemów
- Złożoność obliczeniowa
- Złożoność pamięciowa
- Złożoność cyklometryczna
- Złożoność kogitywna
- Dług techniczny
Automatyzacja Code Review
- Włączenie procesu CI/CD do Code Review
- Statyczna analiza kodu źródłowego
- Pipeline as a Code
- Quality Gates
- Triggerowanie statusów w Jira
- Strategie scalania zmian (merge, rebase, squash+merge, squash+rebase)
Jakość kodu
- SonarQube, SonarCloud i SonarLint
- Wyciąganie wniosków z analizy statycznej
- Quality Gates
- Mierzenie pokrycia testami
- Testy mutacyjne