Craftsmanship - przybornik profesjonalisty: najlepsze techniki developerskie i architektoniczne

Tytuł: Craftsmanship - przybornik profesjonalisty: najlepsze techniki developerskie i architektoniczne
Kod: Craft-practices-przybornik
Kategoria: Craftsmanship
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie stanowi syntezę kluczowych elementów klasycznej i nowoczesnej inżynierii oprogramowania.

Daje ogólny pogląd na praktyczne aspekty wykorzystania omawianych technik w projektach

Omawiane zagadnienia leżą u podstaw nowoczesnych frameworków i technologii – co zwiększa poziom ich zrozumienia i pozwala na świadome korzystanie.

Profesjonalista w naszym ujęciu:

  • doskonale włada technikami developerskimi i stylami architektonicznymi,
  • potrafi porozumieć się z biznesem przy pomocy technik DDD,
  • dobiera właściwe narzędzie do klasy problemu
  • dostarcza kod wysokiej jakości.

Szkolenie przeznaczone dla programistów i projektantów pragnących poszerzyć swe kompetencje w zakresie profesjonalnych technik zwiększających jakość kodu i projektu. Zdobyta wiedza przekłada się w praktyczny sposób na produktywność mierzoną w szerszej perspektywie czasu.

Forma szkolenia

Szkolenie prowadzone jest w formie warsztatu połączonego z częścią teoretyczną. Począwszy od pierwszego dnia uczestnicy pracują nad refactoringiem i rozwojem aplikacji biznesowej.

System przechodzi od podejścia opartego o anemiczny model danych do systemu podzielonego na trzy oddzielne stosy:

  • Kluczowa dla systemu logika biznesowa zrealizowana w architekturze Hexagonalnej
  • Wprowadzanie i modyfikacji danych słownikowych oparte o architekturę warstwową CRUD
  • Projekcje udostępnione tylko do odczytu w architekturze warstwowej

Wyróżniki szkolenia

  • Sprawdzone techniki SOLID, GRASP i DDD
  • Osadzenie technik w architekturze aplikacji i systemu
  • Całość w kontekście testowania automatycznego
  • Realne przykłady

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Techniki Object Oriented
    1. Ukierunkowanie myślenia w stylu OO
    2. Code smell
    3. Podstawowe założenia paradygmatu obiektowego
      1. Abstrakcja
        1. Poziomy abstrakcji
        2. Wycieki abstrakcji
        3. Single Level Of Abstraction Principle
      2. Enkapsulacja
        1. Tell Don’t Ask Principle
        2. Efektywne wykorzystanie wzorca Fasady
        3. Refactoring anemicznego modelu dziedziny
      3. Kompozycja, dziedziczenie, delegacja
        1. Zamknięcie kodu na rozbudowę
        2. Zastępowania dziedziczenia kompozycją – praktyczne zalety zmiany podejścia
          1. Dziedziczenie nie nadaje się do modelowania ról
          2. Liskov Substitution Principle
          3. Wzorzec Role Object i Extension Object
    4. GRASP - General Responsibility Assignment Software Patterns
      1. Wysoka spójność i luźne powiązania
        1. Jak ją osiągnąć
        2. Jak wykrywać zapachy kodu
    5. Praktyczne wykorzystanie SOLID
      1. Pojedyncza odpowiedzialność
      2. Zasada podstawienia Liskov
      3. Zakres interfejsów
      4. Otwartość na rozbudowę
        1. Wzorzec Strategii
        2. 3 rodzaje logiki: stabilna, domknięcia, wybór domknięć
    6. Odpowiednie kierunki zależności
  2. Clean Code
    1. Wykrywanie Code Smells
    2. Wybrane Wzorce implementacyjne i projektowe
  3. Techniki porządkowania logiki i wzorce architektury aplikacyjnej
    1. Podział na logikę aplikacji i logikę domenową
    2. Logika aplikacji
      1. Modelowanie Use Case/User Story
    3. Logika domenowa
      1. Modelowanie logiki domenowej
      2. Techniki DDD - Building Blocks
        1. Agregaty, Encje, VO
        2. Polityki, Serwisy Domenowe
        3. Repozytoria i Fabryki
        4. Zdarzenia
  4. Wzorce architektury aplikacyjnej
    1. Architektura Warstwowa
      1. CRUD
      2. Projekcje danych
      3. Layers vs Tiers
    2. Architektura Hexagonalna
      1. Podstawowe założenia
        1. Otwartość na rozbudowę
        2. Odporność na zmiany wymagań technologicznych
      2. Model domenowy
      3. Porty wejściowe
        1. Otwarcie aplikacji na różne źródła danych
        2. Przykładowa implementacja adapterów w specyfikacji REST
      4. Porty wyjściowe
        1. Jak implementować model domenowy niezależny od bazy danych
        2. Przykładowa implementacja adapterów pamięciowych oraz SQL
      5. Odwzorowanie architektury Hexagonalnej za pomocą pakietów oraz modułów
    3. Ciągłe walidowanie założeń wybranej architektury za pomocą testów automatycznych
  5. Wzorce integracyjne
    1. Transactional Outbox
    2. Event Notification
    3. Event Carried State Transfer
    4. Saga
  6. Testability – projektowanie pod kątem wsparcia dla TDD
    1. Podejście Specify First
    2. Behaviour Driven Development
    3. Projektowanie pod kątem testów z wykorzystaniem technik OO
    4. Wykorzystanie Dependency Inejection
    5. Mapowanie piramidy testów na warstwy aplikacji
    6. Stosowanie Stub i Mock
    7. Redukcja ilości przypadków testowych
      1. Rozwarstwienie logiki
      2. Obiekty funkcyjne
    8. Pułapki testowania automatycznego
      1. Testy jednostkowe a refactoring
      2. Odwrócona piramida testów


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.