Szkolenie dostępne na zamówienie

Szkolenie: XP: Code Review i dobre praktyki inżynieryjne

Szkolenie w sposób przekrojowy omawia ideę Extreme programming (XP) a w głównej mierze koncentruje się na procesie Code Review oraz dobrych praktykach inżynieryjnych. Szkolenie jest agnostyczne w stosunku do języka programowania, tzn. że mogą w nim uczestniczyć osoby programujące zarówno w Javie, Pythonie, PHP jak i w C/C++ oraz GO i Rust.

Czas trwania szkolenia:2 dni (16h)

Poziom zaawansowania:

Kod kursu:XP/CR

extreme-programmingcode-review

Szkolenie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Zapytanie o szkolenie

XP: Code Review i dobre praktyki inżynieryjne

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


Dla kogo?

  • Inżynierowie oprogramowania

  • Inżynierowie jakości

  • Team-leaderzy

  • Architekci


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


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


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

Pobierz program w PDF

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