Opis
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.
Cel
- Pogłębienie znajomości komponentów biblioteki standardowej
- Stosowanie podstawowych wzorców projektowych implementowanych w języku C++
- Zapoznanie się z metodologią TDD
Grupa docelowa:
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.
Czas trwania szkolenia - 3 dni.
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie, jak i w lokalizacjach wskazanych przez klienta.
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl
Wymagania:
- 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.
Konspekt
- 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