Budowa i architektura złożonych systemów w języku C++

LICZBA DNI: 4 (32h)

KOD KURSU: CPP/ARCH

# architecture

O szkoleniu

DLA KOGO?

Średnio zaawansowanych i zaawansowanych programistów programujących w języku C++ w środowiskach tworzenia aplikacji dla przedsiębiorstw,

Osób znających w stopniu podstawowym i zaawansowanym procesów związanych z budowaniem dokumentacji projektowej, jednocześnie biorących bezpośredni udział w tworzeniu oprogramowania,

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łego posługiwania się wybranym środowiskiem IDE (Eclipse, Visual Studio, NetBeans, vim),

Znajomości koncepcji programowania obiektowego, systemowego i aplikacyjnego,

Biegłej znajomości narzędzi do tworzenia aplikacji z rodziny gcc i binutils,

Umiejętności posługiwania się narzędziem debuggera.

Znajomości koncepcji właściwych programowaniu w języku C++ na poziomie średnio i zaawansowanym.

Znajomości tworzenia kodu szablonowego oraz posługiwania się dowolną implementacją biblioteki standardowej.

ZALETY

Szczególny nacisk kładziemy na zagadnienia związane z konsolidacją plików obiektów rozbudowanych architektur, przyśpieszeniem konsolidacji oraz stosowaniem podstawowych wzorców tak projektowych jak i architektonicznych.

Uwypuklamy aspekty prawidłowego definiowania kluczowych wymagań co do architektury, zdefiniowania modelu prawidłowego wykonania procesu budowy, a także definiowanie elastycznych interfejsów aplikacyjnych.

Szkolenie odpowiada potrzebom zaawansowanych programistów oraz architektów systemów. Jako bibliotek i narzędzi wspierających używamy oprogramowania otwartego.

Szczególne znaczenie przykładamy do określenia czynników separujących elementy przetwarzania na etapie kompilacji, generowania kodu, realizacji algorytmów constexpr.

Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień wdrażają techniki i procedury posługując się technologiami związanymi z językiem C++ w rzeczywistych projektach. W trakcie zajęć używamy technologii i środowisk otwartych.

Cele szkolenia

Kształcenie umiejętności i rozwijanie wiedzy dotyczącej definiowania architektury systemu 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 zakresie aspektów przyśpieszenia budowy złożonych systemów,

Zapoznanie się z zaawansowanymi mechanizmami związanymi z warstwą ABI (ang. Application Binary Interface) i API (ang. Appication Programmer Interface) tworzonych systemów.

Program

  • Przypomnienie pojęć dotyczących analizy obiektowej.
  • Główne elementy i zasady modelowania.
  • Perspektywy rozwiązania informatycznego.
  • Proces wytwórczy, a model.
  • Pojęcie procesu biznesowego.
  • Modelowanie procesów biznesowych – przegląd metod i narzędzi z punktu widzenia architekta.
  • Procesy biznesowe, a architektura aplikacji.
  • Pojęcie domeny rozwiązania.
  • Wymagania wpływające na wybór architektury oprogramowania w języku C++
  • Wzorce architektury i ich aspekty właściwe dla języka C++.
  • Elementy i wzorce DDD.
  • DDD w praktyce projektu w języku C++.
  • Przegląd istotnych zagadnień związanych z konsolidacją plików obiektów.
  • Reguły separacji warstw i komponentów w języku C++.
  • Szkielety aplikacyjne wspierające budowę złożonych architektur (ang. Frameworks).
  • Projektowanie komponentów.
  • Projektowanie obiektów i interfejsów.
  • Projektowanie funkcji.
  • Wzorce projektowe GoF – przegląd.
  • Wzorce aplikacji dla przedsiębiorstw – przegląd.
  • Komponent – zakres obiektów fizycznych.
  • Hierarchia fizyczna.
  • Aspekty testowalności.
  • Izolacja fizyczna – techniki izolacji (częściowe i całkowite).
  • Interfejsy proceduralne.
  • Pakiety w warstwie fizycznej.
  • Koszt i konieczność refaktoryzacji.
  • Wzorce refaktoryzacji.
  • Zarządzanie pamięcią w złożonych aplikacjach w języku C++.
  • Zagadnienia aspektowe w aplikacjach w języku C++ i ich implementacja.
  • Problem zależności cyklicznych.
  • Rodzaje odwrócenia kontroli IoC (ang. Inversion of Controll ) i konsekwencje stosowania w języku C++.
  • Rodzaje cyklu życia aplikacji – wpływ na projekt i aspekty jakości aplikacji.
  • Techniczne aspekty wspierające implementację cyklu życia aplikacji.
  • Narzędzia komercyjne.
  • Narzędzia na licencjach wolnych.
  • Programowanie obiektowe – czynniki wpływające na proces analizy i implementacji.
  • Programowanie wielowątkowe – wady i zalety.
  • DSL (ang. Domain Specific Language ).
  • Maszyna stanu.
  • Programowanie funkcyjne (metaprogramowanie w języku C++).
  • Przetwarzanie w czasie kompilacji (constexpr)
  • Nowoczesne metody zarządzania zasobami w języku C++.
  • Przetwarzanie w czasie kompilacji na poziomie szablonów i funkcji constexpr.
  • Aspekty praktyczne budowy architektury korporacyjnej.
  • Proces budowy aplikacji w języku C++.

Nasi eksperci

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.