Programowanie obiektowe i wielowątkowe w C na systemie Linux

Tytuł: Programowanie obiektowe i wielowątkowe w C na systemie Linux
Kod: ccpp-multi
Kategoria: C i C++
Forma: 35% wykłady / 65% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie prezentuje faktyczną możliwość stosowania paradygmatu obiektowego podczas implementacji kooperujących aplikacji wieloprocesowych i wielowątkowych.

Wszystkie techniki przedstawiane są na przykładach z rzeczywistych projektów.

W opozycji do akademickiego/książkowego podejścia, uczestnicy szkolenia zdobywaną stopniowo wiedzę jednocześnie wykorzystują i testują przy okazji implementacji zadań warsztatowych, które odzwierciedlają wyzwania napotykane w rzeczywistości, tworząc przy tym skalowalny kod, otwarty na zmiany i podatny na testowanie.

Wyróżniki szkolenia

  • Skupienie uwagi na "fizyce" problemu programowania współbieżnego i rozproszonego
  • Wybór jedynie użytecznych wzorców i technik
  • Rzeczywiste przykłady

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. OOP in C
    1. Powrót do podstaw składni języka C
      1. Koncept wartości i wskaźnika
      2. Rzutowanie po raz pierwszy
      3. Aliasing wskaźników
      4. Reguła „strict aliasing'u”
      5. Jak nad tym panować? Rozszerzenie rzutowania
      6. Słowa kluczowe: const, static, volatile i restrict
    2. Wykorzystanie składni języka i części paradygmatu OOP na rzecz bezpiecznej implementacji re-używalnych obiektów
      1. Abstrakcja – projektowanie interfejsu
      2. Enkapsulacja – ukrywanie szczegółów implementacyjnych i zapobieganie nieoczekiwanym zmianom stanu
      3. Polimorfizm – specjalizowanie zachowania
      4. SOLID-ne programowanie z wykorzystaniem GRASP i DDD
    3. Inwersja kontroli
      1. Paradygmat IoC i zasada Hollywood
      2. Wstrzykiwanie zależności vs. podejście tradycyjne
  2. Programowanie współbieżne
    1. Wstęp
      1. Po co zrównoleglać i rozpraszać?
      2. Problemy i komplikacje
    2. Podstawowa nomenklatura
      1. Aplikacja, program, proces wątek
        1. Poprawne rozumienie podstawowych idiomów w kontekście architektury Linux
      2. Synchronizacja
        1. Mechanizmy blokad, oczekiwania i notyfikacji
        2. Poprawne projektowanie sekcji krytycznych
    3. Programowanie współbieżne pod maską
      1. Prawa Amdahla i Gustafsona
      2. Konfrontacja prawideł matematycznych, a szara rzeczywistość
      3. C językiem niskopoziomowym
      4. POSIX vs. reszta świata
      5. Narzędzia wspomagające
  3. Testy deweloperskie
    1. Testy jednostkowe vs. testy modułowe
      1. Które i jak stosować
      2. Biblioteki usprawniające testowanie
    2. Stress testy
    3. Testy funkcjonalne
    4. Diagnostyka aplikacji wielowątkowych: śledzenie i profilowanie
      1. Zestaw narzędzi wspomagających
      2. Poprawna interpretacja wyników


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.