Wzorce projektowe w C++

Kod: CCPP-craft-C++ Patterns
Kategoria: Craftsmanship dla programistów C i C ++
Forma: 40% wykłady / 60% warsztaty
Czas trwania: 3 dni
Grupa docelowa: developerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Szkolenie prezentuje wybrane Wzorce Projektowe w praktycznym i niepodręcznikowym ujęciu osadzonym w kontekście projektowania bibliotek, frameworków, platform i systemów.

Podczas szkolenia prezentowane są przykłady praktycznego zastosowania zaczerpnięte z rzeczywistych systemów serwerowych i rozproszonych.

Podczas szkolenia uczestnicy nabędą zintegrowaną wiedzę na temat zdobyczy nowoczesnej inżynierii oprogramowania pozwalającą im na tworzenie zaawansowanych systemów. Podczas warsztatów praktycznych łączymy wzorce projektowe i architektoniczne aby stworzyć giętkie i otwarte na rozbudowę rozwiązania cechujące się wysokim poziomem testowalności. Omawiane zagadnienia leżą u podstaw nowoczesnych frameworków i technologii – co zwiększa poziom ich zrozumienia i pozwala na świadome korzystanie. Przedstawiamy techniki łączenie wzorców w struktury wyższego rzędu.

Szkolenie przeznaczone dla programistów C++ i architektów pragnących poszerzyć swe kompetencje w zakresie profesjonalnych technik inżynierii oprogramowania zwiększających jakość kodu i projektu.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Skupienie na kontekście projektowania aplikacji i systemów
  • Wybór jedynie użytecznych wzorców oraz technik
  • 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. Object Oriented Design
    1. Analiza Paradygmatu Object oriented i jego poprawna interpretacja
    2. Ukierunkowanie myślenia w stylu OO
    3. GRASP - General Responsibility Assignment Software Patterns
    4. SOLID - Single Responsibility Principle (SRP), the Open/Closed Principle (OCP), the Liskov Substitution Principle (LSP), the Dependency Inversion Principle (DIP), and the Interface Segregation Principle (ISP)
    5. Najlepsze praktyki i pułapki
      1. Domain Driven Design - wzmianka pierwsza
      2. Test Driven Development - wzmianka pierwsza
      3. POSA - Pattern Oriented Software Architecture
  2. Paradygmat Inversion of Control – sprawdzona koncepcja budowy frameworków i systemów
    1. Dependency Injection – podstawa współczesnych frameworków - dokładne omówienie z zadaniami
      1. Wsparcie dla testability
      2. Praktyczne techniki wykorzystania w celu osiągnięcia giętkości designu
      3. Wstrzykiwanie poprzez kontenery
      4. Wstrzykiwanie w Fabrykach
    2. Systemy sterowane zdarzeniami – omówienie koncepcji i problemów
      1. Architektura pluginowa
      2. Separacja modułów
      3. Zwiększanie responsywności systemu
      4. Skalowanie
  3. Wzorce projektowe - praktyczne, nieksiążkowe przykłady oparte o rzeczywiste problemy
    1. Command – hermetyzacja usług, autoryzacja dostępu
    2. Decorator – reużywalnośc logiki
      1. Składanie złożonej logiki biznesowej o przyrostowym charakterze
      2. Wrapper – odmiana wzorca użyteczna w modelowaniu zorientowanym na znaczenie
        1. Opakowanie typów podstawowych wygodnymi obiektami
        2. Alternatywa dla Utils
        3. Archetyp Money
      3. Połączenie Dekoratora ze Strategią w celu zbudowania odmian algorytmów przyrostowych
    3. Strategy – hermetyzacja logiki biznesowej
      1. Wybór odmiany algorytmu bez ingerencji w core biznesowy
      2. Integracja z mechanizmami wstrzykiwania zależności
      3. Definiowane konkretnej strategii biznesowej w kontenerze Incersion of Control (XML lub metody fabrykujące)
    4. Chain of Responsibity – dwie odmiany wzorca
      1. Dobór logiki biznesowej do aktualnych warunków
      2. Połączenie Łańcucha ze Strategią w celu zbudowania odmian algorytmów warunkowych
    5. Abstract Factory – tworzenie artefaktów domenowych
      1. Spójny sposób na tworzenie rodzin obiektów biznesowych zależnych od konfiguracji wdrożeniowej systemu
      2. Produkowanie Strategii
    6. Builder – redukcja złożoności tworzenia struktur
      1. Zunifikowane eksportowanie obiektów domenowych
      2. Ukrywanie złożoności budowania zapytań
    7. Template Method – szablony procesów.
      1. Technika uwspólniania logiki biznesowej.
      2. Szablonowe Strategie
      3. Przykłady antywzorca.
    8. Singleton – niebezpieczny wzorzec w przykładach.
      1. Szczegóły implementacji Singeltonów tworzonych z opóźnieniem, odpornych na współbieżny dostęp.
    9. State – hermetyzacja procesu biznesowego.
      1. Implementacja maszyny stanów reprezentującej złożony cykl życia obiektu biznesowego.
      2. Maszyna Stanów jako Wrapper dodający nowe funkcjonalności.
      3. Pułapki zbytniego uogólniania Maszyn Stanów
    10. Observer – redukcja zależności
    11. Event Broker - uogólnienie do poziomu Architektury Systemu
    12. Wysokowydajne systemy Event Driven i asynchroniczne przetwarzanie.
    13. Saga - orkiestracja wielu zdarzeń w czasie
    14. Specification – hermetyzacja reguł biznesowych
      1. Redukcja złożoności systemów zawierających złożoną logikę decyzyjną
      2. Przypadek gdy istnieje wiele możliwych kryteriów logicznych
      3. Jednak w danym kontekście (wdrożenie, klient) używanym tylko podzbioru reguł
    15. Role Object
      1. Modelowanie ról w systemie.
      2. Alternatywa dla dziedziczenia.
      3. Odmiana wzorca Bridge.
    16. Facade – redukcja złożonej struktury pod wygodnym API
  4. Użyteczne wzorce o zastosowaniu technicznym
    1. Bridge – rozdzielenie interfejsu koncepcyjnego od jego implementacji
    2. Flyweight, Prototype – wzorce optymalizacji
    3. Memento – komunikacja pomiędzy kontekstami
    4. Proxy – podstawowy wzorzec frameworków
    5. Composite – powtarzalne struktury
    6. Visitor – dynamiczne rozszerzanie API Klasy (emulacja Double Dispatch)
    7. Iterator – standardowy wzorzec dla kolekcji
    8. Interpreter – wygodny wzorzec dla tworzenia własnych DSL
    9. Observer - systemy zorientowane na zdarzenia, Składowa MVC
    10. Extension Object - uogólnienie Role Object dla systemów otwartych na rozbudowę
  5. Testability – wpływ użycia dobrych praktyk OOD i Wzorców na testowalność kodu
    1. Zagadnienia podatności architektury na testy: problemy i pułapki
    2. Techniki testowania jednostkowego: dummy, fake, stub, mock
    3. Narzędzia testowania jednostkowego i integracyjnego
      1. GTest
      2. GMock


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.

Zapytaj o 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ń