Zaawansowane programowanie w języku C++
Umiejętności zdobywane podczas kursu:
- Refaktoryzacja istniejącego kodu.
- Umiejętność samodzielnego rozwiązywania problemu własności.
- Stosowanie dobrych praktyk przy wytwarzaniu oprogramowania.
- Ogólna znajomość wzorców projektowych.
- Pogłębienie znajomości komponentów biblioteki standardowej
- Stosowanie podstawowych wzorców projektowych implementowanych w języku C++
- Zapoznanie się z metodologią TDD
Szkolenie ma w założeniach odzwierciedlać dzisiejszy stan wiedzy o programowaniu w języku C++ oraz przekazywać sprawdzone dobre praktyki przy budowie i wdrażaniu aplikacji tworzonych w tym języku. Przeznaczone jest dla programistów którzy chcą pogłębić swoją wiedzę na temat programowania w języku C++ oraz wykształcić umiejętności budowy złożonych aplikacji oraz utrzymania istniejącego już kodu.</p>
- Umiejętność pracy w środowisku systemu operacyjnego na poziomie średnio zaawansowanego użytkownika.
- Umiejętność programowania w języku C++ na poziomie średnio zaawansowanego programisty.
-
Zaawansowana obsługa wyjątków.
- Modele obsługi wyjątków w aplikacjach
- Implementacja własnej hierarchii wyjątków
- Strategie reakcji na sytuacje wyjątkowe
-
Asercje i logowanie zdarzeń
- Rola asercji
- Włączanie i wyłączanie asercji
- Logowanie zdarzeń
-
Programowanie wielowątkowe.
- Dostępne modele obsługi wątków
- Kreowanie i obsługa wątku
- Dane prywatne i wspólne wątków
- Blokady i semafory
-
Obsługa wyjątków w aplikacjach wielowątkowych.
- Pułapki obsługi wyjątków w aplikacjach wielowątkowych
- Poprawna implementacja obsługi wyjątków w aplikacji wielowątkowej
-
RTTI (ang. RunTime Type Identity )
- Rola i znaczenie RTTI
- Obsługa RTTI we własnej aplikacji
-
Widoki i adaptery iteratorów.
- Pojęcie iteratora i jego zastosowanie
- Implementacja iteratora
-
Kolekcje i ich zaawansowana obsługa.
- Zasady projektowania kolekcji
- Implementacja własnej kolekcji
-
Wzorce projektowe.
- Znaczenie podstawowych wzorców projektowych
- Implementacja wybranych wzorców projektowych
-
Refaktoryzacja kodu
- Zasady czytelnego dokumentowania i programowania
- Rola i znaczenie refaktoryzacji kodu
-
Usuwanie błędów i diagnostyka
- Usuwanie błędów
- Usuwanie błędów w aplikacjach wielowątkowych
-
Programowanie rozproszone
- Dostępne biblioteki programowania rozproszonego
- Implementacja prostej aplikacji rozproszonej
-
Wstęp do biblioteki BOOST
- Podstawowe elementy biblioteki Boost
- Zastosowanie inteligentnych wskaźników z biblioteki Boost
- Omówienie dostępnych narzędzi, kontenerów i algorytmów biblioteki Boost
-
Testy modułowe i dobre praktyki w programowaniu
- Rola testowania w trakcie budowy aplikacji
- Pakiety wspomagające testowanie
- Prawidłowe określanie przypadków testowych


