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

Czas trwania szkolenia:4 dni (32h)

Kod kursu:CPP/ARCH

Poziom zaawansowania:
architecture

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 Budowa i architektura złożonych systemów 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?

  • Ś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
  • 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 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. Application Programmer Interface) tworzonych systemów

Program

Wprowadzenie do zasad budowy architektury

  • Przypomnienie pojęć dotyczących analizy obiektowej
  • Główne elementy i zasady modelowania
  • Perspektywy rozwiązania informatycznego
  • Proces wytwórczy, a model

Analiza procesów biznesowych

  • 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

Analiza wymagań z punktu widzenia architekta

  • 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++

DDD (ang. Domain Driven Design) - przegląd zagadnień

  • Elementy i wzorce DDD
  • DDD w praktyce projektu w języku C++

C++, a rozbudowana architektura

  • 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)

Architektura logiczna

  • Projektowanie komponentów
  • Projektowanie obiektów i interfejsów
  • Projektowanie funkcji
  • Wzorce projektowe GoF - przegląd
  • Wzorce aplikacji dla przedsiębiorstw - przegląd

Projekt fizyczny

  • 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

Typowe problemy związane z rozwojem aplikacji

  • 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 Control) i konsekwencje stosowania w języku C++

Cykl życia oprogramowania i wpływ na architekturę i projekt

  • 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++

Przegląd narzędzi umożliwiających budowanie architektury

Dodatkowe paradygmaty i modele - aspekty projektowe

Nowe standardy języka C++ - na co zwrócić uwagę

Podobne szkolenia