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

LICZBA DNI: 4 (32h)

KOD KURSU: CPP/BOOST

Powiadom
o kolejnych terminach

# 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

O szkoleniu

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

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

  • 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
  • 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
  • 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
  • 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
  • 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
  • Rodzaje inteligentnych wskaźników
  • Problem własności/przynależności
  • Stosowanie inteligentnych wskaźników w codziennej pracy
  • 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
  • Przegląd elementów Boost Test
  • Implementacja testów w bibliotece Boost Test
  • Testy rozszerzone
  • Zakresy zastosowań bibliotek Boost
  • Specyfika implementacji i stosowania
  • Przykładowe zastosowania bibliotek
  • Biblioteki Boost a nowe standardy języka C++
  • 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
  • Przeznaczenie biblioteki Boost Property Tree
  • Zakres wydajnego stosowania Boost Property Tree
  • Paradygmat programowania maszyny stanu
  • Wsparcie dla programowania maszyny stanu dostarczane wraz z bibliotekami z rodziny Boost
  • Warsztat implementacji maszyny stanu
  • Boost Algorithm jako uzupełnienie biblioteki standardowej
  • Algorytmy przeszukiwania
  • Algorytmy pracujące na sekwencjach
  • Warsztat implementacji
  • Asynchroniczny dostęp do danych z użyciem Boost Asio
  • Wsparcie komunikacji sieciowej
  • Asio a przesyłanie danych sieciowych
  • Sygnały
  • Warsztat implementacji
  • Przenośność zapewniana przez Boost Filesystem
  • Boost Filesystem a nowe standardy języka C++
  • Przechwytywanie błędów w Boost Filesystem
  • Warsztat implementacji
  • Współdzielenie struktur pomiędzy procesami
  • Synchronizacja pracy procesów
  • Alokatory i zarządzanie pamięcią
  • Boost Interprocess a inteligentne wskaźniki
  • Wydajność i zalety struktur intruzywnych
  • Intruzywne wersje kontenerów
  • Analiza wydajności tradycyjnych rozwiązań i rozwiązań Boost Intrusive
  • Metaprogramowanie – pojęcia, algorytmy i warsztat
  • Szybkie wprowadzenie do metaprogramowania
  • Metaprogramowanie a rzeczywiste wyzwania
  • Warsztat implementacji
  • Pojęcie wąskich gardeł w aplikacji
  • Mechanizmy i rodzaje profilowania aplikacji w C++
  • Warsztat implementacji

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.