Zaawansowane programowanie w języku C++
Czas trwania szkolenia:4 dni (32h)
Kod kursu:CPP/ADV
Poziom zaawansowania:
O szkoleniu Zaawansowane programowanie w języku C++
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programiści programujący w języku C i C++ w środowisku GNU/Linux lub MS Windows
- Osoby znające w podstawowym zakresie system szablonów STL
- Programiści tworzący oprogramowanie na platformie systemowej GNU/Linux lub MS Windows
- Programiści tworzący aplikacje głównego nurtu oraz aplikacje sieciowe
Wymagania
- Posługiwanie się wybranym środowiskiem IDE
- Znajomość koncepcji programowania obiektowego, systemowego i aplikacyjnego
- Znajomość koncepcji związanych z programowaniem w języku C++ na poziomie podstawowym i średnio zaawansowanym
Zalety
- Uczestnicy szkolenia Zaawansowane programowanie w języku C++ poznają aspekty programowania uogólnionego oraz wstępnie koncepcje leżące u podstaw metaprogramowania ze szczególnym uwzględnieniem cech typów
- Szczególny nacisk w trakcie szkolenia Zaawansowane programowanie w języku C++ kładziemy na zrozumienie aspektów wydajności oraz gospodarowania zasobami z użyciem wskaźników inteligentnych. Zajmiemy się także zarządzaniem czasem życia obiektu w odniesieniu do mechanizmu wyjątków oraz semantyki r-referencji
- Na zajęciach posługujemy się technologiami otwartymi z dostępem do kodu źródłowego
- Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień stosują technologie związane z językiem C++ w rzeczywistych projektach. W trakcie zajęć używamy technologii i środowisk otwartych
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Kształcenie umiejętności rozwijania wiedzy dotyczącej tworzenia zaawansowanych rozwiązań w języku C++
- Osadzenie narzędzi i procesów tworzenia oprogramowania w realiach współczesnych wymagań Inżynierii Oprogramowania
- Dokonanie konsolidacji wiedzy i uzupełnienie braków w kompetencjach w kontekście standardu C++
- Nauka testowania jednostkowego aplikacji w języku C++
- Nauka tworzenia aplikacji wielowątkowych z użyciem mechanizmów biblioteki standardowej
- Nauka identyfikacji i tworzenia oprogramowania z użyciem wzorców GoF oraz elementów programowania funkcyjnego
- Zapoznanie się ze współczesnymi bibliotekami przetwarzającymi dane
Program
Elementy nowych standardów C++
Inicjalizacja danych
- Podstawowe rodzaje inicjalizacji
- Przez kopiowanie i wprost
- Pole po polu
- Zmienne statyczne i globalne
- Lista inicjalizacyjna
Semantyka przeniesienia
- Kategorie wartości
- Referencje na lewe i prawe wartości
- Konstruktor i operator przeniesienia
Inteligentne wskaźniki
- Własność danych
- Jawne określanie własności
- Przekazywanie i nieprzekazywanie własności
- Zwalnianie pamięci
- Współdzielenie własności
- Modelowanie bez użycia wskaźników inteligentnych
Programowanie uogólnione
- Dedukcja typów
- Filozofia używania auto
- Algorytmy biblioteki standardowej
- Iteratory
Zakresy C++20
- Iteracja po zakresie
- Definicja zakresu
- Algorytmy oparte o zakresy
- Odwzorowania
- Widoki i adaptery
- Składanie widoków
Szablony funkcji i klas
- Rodzaje szablonów
- Parametry szablonów
- Kompilacja szablonów
- Specjalizacja
Programowanie czasu kompilacji
- Wyrażenia wykonywalne podczas kompilacji
- Elementy meta-programowania
- Cechy typów