| Tytuł: | Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne |
| Kod: | NET-.NET patterns |
| Kategoria: | .NET |
| Forma: | 50% wykłady / 50% ćwiczenia |
| Czas trwania: | 3 dni |
| Odbiorcy: | architekci, developerzy |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Szkolenie prezentuje poprawną implementację popularnych wzorców projektowych.
Szkolenie jest przeznaczone dla zaawansowanych programistów, projektantów i architektów poszukujących rozwiązań dla systemów o złożonej logice.
Podczas szkolenia stopniowo rozwijamy istniejący system o nowe funkcjonalności korzystając z nabytej wiedzy o wzorcach. Z uwagi na ilość wzorców jaka jest przedstawiana ćwiczenia polegają często na małych (ale krytycznych) zmianach w istniejącym kodzie.
W trakcie szkolenia poruszamy problemy testowania automatycznego: wpływ stosowania wzorców na testowalność kodu oraz wzorce dla kodu testów.
Wyróżniki szkolenia
- Niwelowanie długu technicznego na wczesnym etapie
- Architektura podatna na rozwój, utrzymanie i testowanie
- Praktyczne, nieakademickie 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.-
Wprowadzenie- OO - poprawna interpretacja
- GRASP
- SOLID
- Dlaczego warto pamiętać o KISS i DRY
- OO - poprawna interpretacja
-
Wzorce- Strategy
- Pluginy
- Kastomizacja logiki per wdrożenie
- Wstrzykiwanie strategii
- Modelowanie w stylu funkcyjnym
- Pluginy
- Adapter
- Trywializacja do postacie Wrappera
- Value Objects - odpowiedni poziom abstrakcji dla modeli biznesowych
- Trywializacja do postacie Wrappera
- Bridge
- Otwarcie na zmiany poprzez podwójną abstrakcję
- Nawiązanie do Role Object i Extension Object
- Otwarcie na zmiany poprzez podwójną abstrakcję
- Builder
- Dostęp do hermetycznych obiektów
- Assembler i Object Mother - zastosowanie w testach jednostkowych
- Dostęp do hermetycznych obiektów
- Chain of Responsibility
- Manager łańcucha - zastodowanie do walidacji
- Manager łańcucha - zastodowanie do walidacji
- Command
- Anti-Command - zastodowanie do operacji undo
- Command Handler w architekturach klient-serwer
- Wersjonowanie API
- Własny framework AOP w 50 linijkach kodu
- Wersjonowanie API
- Anti-Command - zastodowanie do operacji undo
- Composite
- Specification w kontekście dynamicznych reguł biznesowych
- Specification w kontekście dynamicznych reguł biznesowych
- Decorator
- Dynamiczne dziedziczenie
- Dynamiczne dziedziczenie
- Event Aggregator
- Facade
- Zmiana API
- Redukacja interakcji z serwerem
- Zmiana API
- Factory idiom
- Mediator
- Orkiestracja skomplikowanego UI
- Orkiestracja skomplikowanego UI
- Memento
- MVP
- MVVM
- NULL Object
- Observer
- Pluginy
- Event Broker i Event Bus w architekturze serwerowej
- Pluginy
- Proxy
- Repository
- Role Object
- Uzależnienie logiki od roli zalogowanego użytkownika
- Bezpieczeństwo
- Integracja z archetypem biznesowym Party
- Uzależnienie logiki od roli zalogowanego użytkownika
- Singleton
- Antywzorzec w przykładach
- Antywzorzec w przykładach
- Service Locator
- State
- Alternatywne podejścia do konstruowania maszyn stanów
- Alternatywne podejścia do konstruowania maszyn stanów
- Template Method
- Otarcie się o antywzorzec
- Otarcie się o antywzorzec
- Unit of Work
- Visitor
- Wygodny sposób na obsługę typów wyliczeniowych
- Wygodny sposób na obsługę typów wyliczeniowych
- Rules
- Strategy
-
Testowanie automatyczne- Wpływ dobrego projektu obiektowego na testowalność kodu
- Wysoka kohezja
- Zastosowanie SOLID i GRASP
- Zastosowanie SOLID i GRASP
- Niski coupling
- Zastosowanie Fabryk, Zdarzeń i Strategii
- Zastosowanie Fabryk, Zdarzeń i Strategii
- Wysoka kohezja
- TDD
- Podejście Specification First
- Cykl Red, Green, Refactor
- Podejście Specification First
- Narzędzia
- Uruchamianie testów
- Zaślepki: Mock, Stub, Fake, Spy
- Automatyczne uruchamianie testów w tle w Visual Studio
- Uruchamianie testów
- Wzorce tworzenia testów
- Testujemy zachowania a nie metody
- Arrange, Act, Assert
- Przygotowanie stanu
- Object Mother
- Assembler (Builder)
- Object Mother
- Sprawdzenie
- Assert Object
- Matcher
- Assert Object
- Testujemy zachowania a nie metody
- Wpływ dobrego projektu obiektowego na testowalność kodu
Pobierz program w formacie PDF
Trenerzy
Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.