Praktyczne zastosowanie bibliotek Boost oraz nowych standardów C++

Czas trwania szkolenia:4 dni (32h)

Kod kursu:CPP/BOOST

Poziom zaawansowania:

boost

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu.
Dostępne wyłącznie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Icon with laptop

O szkoleniu Praktyczne zastosowanie bibliotek Boost oraz nowych standardów 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?

  • Średnio zaawansowanych i zaawansowanych programistów programujących w języku C i C++ w środowisku GNU/Linux
  • Osób znających w stopniu podstawowym i zaawansowanym zakres systemu szablonów STL
  • Programistów tworzących oprogramowanie na platformie systemowej GNU/Linux lub MS Windows
  • Programistów tworzących aplikacje głównego nurtu oraz aplikacje sieciowe

Wymagania

  • Biegłe posługiwanie się wybranym środowiskiem IDE (Eclipse, NetBeans, Vim)
  • Znajomość koncepcji programowania obiektowego, systemowego i aplikacyjnego
  • Biegła znajomość narzędzi do tworzenia aplikacji z rodziny gcc i binutils
  • Umiejętność posługiwania się narzędziem debuggera
  • Znajomość koncepcji związanych z programowaniem w języku C++ na poziomie średnio i zaawansowanym
  • Dodatkowo mile widziana jest znajomość aspektów sprzętowych platformy x86 (przydzielanie i zarządzanie pamięcią, alokacja rejestrów, konwencje wywołań, optymalizacje)

Zalety

  • 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 oraz rozwijanie 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++17
  • Testowanie jednostkowe aplikacji w języku C++
  • Tworzenie aplikacji z użyciem bibliotek składowych Boost
  • Zapoznanie ze współczesnymi bibliotekami języka C++ przetwarzającymi dane w różnorodnych formatach

Program

Algorytmy i iteratory biblioteki standardowej - uzupełnienia związane ze standardami C++11, C++14 i C++17

  • Wydajność algorytmów standardowych
  • Stosowanie algorytmów i iteratorów
  • Algorytmy i kontenery dostępne w ramach standardów C++11, C++14 i C++17
  • Modyfikacja działania algorytmów standardowych

STL - uzupełnienie i przypomnienie wiedzy

  • Szablony - stosowanie i reguły dopasowań
  • Reguły SFINAE (ang. substitution failure is not an error)
  • Wzorzec „zadziwiająco często powracającego szablonu” CRTP (ang. curiously recurring template pattern)
  • Trik Bartona-Nackmana (ang. Barton-Nackman trick)
  • Kruczki i sztuczki związane ze stosowaniem szablonów
  • Szablon o zmiennej liczbie argumentów (ang. variadic templates)
  • Szablony zagnieżdżone

Mechanizmy i elementy standardu C++17

  • Manipulacja typem
  • Nowe słowa kluczowe
  • Mechanizmy kontroli definiowania i instancji klas
  • Wyjątki i obsługa w środowisku wielowątkowym
  • Rozszerzenia biblioteki standardowej
  • Wyrażenia lambda

Cechy typów (ang. type traits)

  • Pojęcie cechy typu i manipulowanie nim
  • Cechy typów w bibliotece standardowej
  • Rozwiązywanie najczęstszych problemów z użyciem cechy typów
  • Własne cechy typów - tworzenie i stosowanie
  • Rozszerzenia C++17

Wykładnie - praktyczne stosowanie

  • Pojęcie wykładni (ang. class policy)
  • Wykładnie - wady i zalety
  • Tworzenie i stosowanie własnych wykładni
  • Implementacja popularnych wzorców projektowych z użyciem wykładni
  • Programowanie aspektowe, a wykładnie

Inteligentne wskaźniki

  • Rodzaje inteligentnych wskaźników
  • Problem własności/przynależności
  • Stosowanie inteligentnych wskaźników w codziennej pracy

Testowanie aplikacji w języku C++

  • TDD w języku C++ - zasady i stosowanie
  • xUnit - elementy i stosowanie
  • Prawidłowe tworzenie testów
  • Zasady TDD a biblioteka cppunit
  • Warsztat praktyczny testowania

Boost Test - biblioteka wspierająca testowanie

  • Przegląd elementów Boost Test
  • Implementacja testów w bibliotece Boost Test
  • Testy rozszerzone

Boost - przegląd przydatnych bibliotek

  • Zakresy zastosowań bibliotek Boost
  • Specyfika implementacji i stosowania
  • Przykładowe zastosowania bibliotek
  • Biblioteki Boost a nowe standardy języka C++

Boost Regex

  • Zakres stosowania Boost Regex
  • Typowe operacje związane z analizą wyrażeń regularnych
  • Kruczki i sztuczki zastosowania Boost Regex
  • Optymalizacja mechanizmów biblioteki we własnych aplikacjach

Boost Property Tree

  • Przeznaczenie biblioteki Boost Property Tree
  • Zakres wydajnego stosowania Boost Property Tree

Boost Meta State Machine/Boost Statechart

  • Paradygmat programowania maszyny stanu
  • Wsparcie dla programowania maszyny stanu dostarczane wraz z bibliotekami z rodziny Boost
  • Warsztat implementacji maszyny stanu

Boost Algorithm

  • Boost Algorithm jako uzupełnienie biblioteki standardowej
  • Algorytmy przeszukiwania
  • Algorytmy pracujące na sekwencjach
  • Warsztat implementacji

Boost Asio

  • Asynchroniczny dostęp do danych z użyciem Boost Asio
  • Wsparcie komunikacji sieciowej
  • Asio a przesyłanie danych sieciowych
  • Sygnały
  • Warsztat implementacji

Boost Filesystem

  • Przenośność zapewniana przez Boost Filesystem
  • Boost Filesystem a nowe standardy języka C++
  • Przechwytywanie błędów w Boost Filesystem
  • Warsztat implementacji

Boost Interprocess

  • Współdzielenie struktur pomiędzy procesami
  • Synchronizacja pracy procesów
  • Alokatory i zarządzanie pamięcią
  • Boost Interprocess a inteligentne wskaźniki

Boost Intrusive

  • Wydajność i zalety struktur intruzywnych
  • Intruzywne wersje kontenerów
  • Analiza wydajności tradycyjnych rozwiązań i rozwiązań Boost Intrusive

Boost MPL

  • Metaprogramowanie - pojęcia, algorytmy i warsztat
  • Szybkie wprowadzenie do metaprogramowania
  • Metaprogramowanie a rzeczywiste wyzwania
  • Warsztat implementacji

Profilowanie aplikacji w języku C++

  • Pojęcie wąskich gardeł w aplikacji
  • Mechanizmy i rodzaje profilowania aplikacji w C++
  • Warsztat implementacji

Podobne szkolenia