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