| Tytuł: | Craftsmanship - przybornik profesjonalisty: najlepsze techniki developerskie i architektoniczne z wykorzystaniem ACE, Boost oraz Qt |
| Kod: | CCPP-craft-C++ Craft |
| Kategoria: | Craftsmanship dla programistów C i C ++ |
| 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 (takich jak Qt, Boost czy ACE) – 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.
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 z wykorzystaniem Qt, Boost czy ACE
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.-
Techniki Object Oriented- Ukierunkowanie myślenia w stylu OO
- Code smell
- Pułapki dziedziczenia
- Zamknięcie kodu na rozbudowę
- Zastępowania dziedziczenia kompozycją – praktyczne zalety zmiany podejścia
- Dziedziczenie nie nadaje się do modelowania ról
- Liskov Substitution Principle
- Wzorzec Party
- Wzorzec Role Object i Extension Object
- Dziedziczenie nie nadaje się do modelowania ról
- Zamknięcie kodu na rozbudowę
- Efektywne wykorzystanie Object Oriented
- GRASP
- SOLID
- RDD
- GRASP
- GRASP - General Responsibility Assignment Software Patterns
- Praktyczne wykorzystanie SOLID
- Kohezja klas
- Jak ją osiągnąć
- Jak wykrywać zapachy kodu
- Jak ją osiągnąć
- Otwartość na rozbudowę
- Wzorzec Strategii
- 3 rodzaje logiki: stabilna, domknięcia, wybór domknięć
- Wzorzec Strategii
- Kiedy dziedziczenie nie ma sensu
- Zakres interfejsów
- Odpowiedni poziom abstrakcji
- Dążenie do kodu o czytelności zbliżonej do prozy
- Technika podmiot.orzecznie(dopełnienie, przydawka)
- Technika modelowania niezmienników
- Technika określania granicy klasy na podstawie analizy Use Case
- Technika podmiot.orzecznie(dopełnienie, przydawka)
- Kohezja klas
- Responsibility Driven Design
- Ukierunkowanie myślenia w stylu OO
-
Clean Code- Wykrywanie Code Smells
- Wybrane Wzorce implementacyjne i projektowe
- Wykrywanie Code Smells
-
Techniki porządkowania logiki i wzorce architektury aplikacyjnej- Podział na logikę aplikacji i logikę domenową
- Logika aplikacji
- Modelowanie Use Case/User Story
- Stanowo czy bezstanowo
- Modelowanie Use Case/User Story
- Logika domenowa
- Techniki DDD - Building Blocks
- Poziomy modelu
- Capacity
- Operations
- Policy - dostrajanie modelu
- Decission Support
- Capacity
- Techniki DDD - Building Blocks
- Podział na logikę aplikacji i logikę domenową
-
Wzorce architektury systemowej- Dostęp do danych
- DAO
- Repository
- ORM - zakres stosowalności
- Pułapki Lazy Loading - wykrywanie i naprawa
- Blokowanie optymistyczne
- Uni of Work
- Pułapki Lazy Loading - wykrywanie i naprawa
- DAO
- Porządkowania logiki biznesowej (Servisy, DDD)
- Inversion of Control – sprawdzona koncepcja budowy frameworków i systemów
- Dependency Injection – podstawa współczesnych frameworków
- Wsparcie dla testability
- Praktyczne techniki wykorzystania w celu osiągnięcia giętkości designu
- Wsparcie dla testability
- Systemy sterowane zdarzeniami
- Architektura pluginowa
- Separacja modułów
- Zwiększanie responsywności systemu
- Skalowanie
- Wybrane przykłady z wykorzystaniem ACE, Boost oraz Qt
- Architektura pluginowa
- Wybrane architektury aplikacji
- Klasyczna n-warstwowa architektura (odmiany)
- Uproszczone architektury
- Command-query Responsibility Segregation
- Architektura wspierająca Domain Driven Design
- Ultra-skalowalne systemy
- Klasyczna n-warstwowa architektura (odmiany)
- Dependency Injection – podstawa współczesnych frameworków
- Dostęp do danych
-
Testability – projektowanie pod kątem wsparcia dla TDD- Podejście Specify First
- Behaviour Driven Development
- Projektowanie pod kątem testów z wykorzystaniem technik OO
- Techniki redukcji zależności
- Wykorzystanie Dependency Inejection
- Mapowanie piramidy testów na warstwy aplikacji
- Stosowanie Stub i Mock
- Redukcja ilości przypadków testowych
- Rozwarstwienie logiki
- Obikety funkcyjne
- Rozwarstwienie logiki
- Podejście Specify First
Pobierz program w formacie PDF