Opis
Umiejętności zdobywane podczas kursu:
- identyfikowanie błędów zarządzania pamięcią
- obsługa komunikacji sieciowej
- integracja aplikacji z dostarczanymi bibliotekami
- posługiwanie się narzędziami ułatwiającymi odnajdywanie i usuwanie błędów
- modularyzacja złożonego projektu
- budowanie własnych bibliotek
Cel
- stosowanie mechanizmów wydajnego programowania w języku C
- umiejętność definiowania i obsługi złożonych struktur danych
- budowanie własnych bibliotek i dystrybucja oprogramowania
Grupa docelowa:
Szkolenie przeznaczone jest dla osób programujących w języku C na poziomie średnio zaawansowanym. W ramach zajęć słuchacze zapoznają się z mechanizmami ładowania dynamicznego i wykorzystania bibliotek zewnętrznych. Zajęcia skupiają się na elementach które najczęściej stanowią problem w prowadzeniu projektów informatycznych oraz na operowaniu wskaźnikami. W trakcie kursu uczestnicy wykorzystują w praktyce wywołania asynchroniczne które w widoczny sposób podnoszą wydajność aplikacji.
Czas trwania szkolenia - 4 dni.
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie, jak i w lokalizacjach wskazanych przez klienta.
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl
Wymagania:
- umiejętność programowania w języku C na poziomie średnio zaawansowanym
- znajomość podstawowych koncepcji związanych z obsługą protokołów sieciowych
- biegła umiejętność obsługi wybranego środowiska IDE
Konspekt
- Wycieki pamięci i zaawansowane zarządzanie pamięcią
- mechanizm wycieku pamięci i jego diagnostyka
- prawidłowe zarządzanie pamięcią
- Bufory i ciągi znaków
- różnice pomiędzy buforem a ciągiem znaków
- operacje na buforze oraz na ciągu znaków
- Zaawansowane zarządzanie plikami
- operacje asynchronicznego dostępu do plików
- obsługa katalogów
- blokowanie rekordów i plików
- Wskaźniki na funkcje i zaawansowane użycie wskaźników
- struktury zbudowane ze wskaźników
- przekazywanie parametrów przez wskaźniki
- wskaźniki na funkcje i funkcje wskaźnikowe
- patologie stosowania wskaźników
- Usuwanie błędów
- debugger GDB i DDD
- podstawowe polecenia GDB
- sesje usuwania błędów
- Analiza wykorzystania pamięci - narzędzie Valgrind
- zakres działania Valgrind
- koszty użycia narzędzia Valgrind
- diagnostyka wykrywania błędów alokacji pamięci
- z użyciem Valgrind
- Analiza statyczna kodu - narzędzia splint
- zakres działania narzędzia splint
- statyczna analiza kodu
- konwencje kodowania i ich wpływ na wyłapywanie
- typowych błędów
- dokumentowanie kodu z użyciem Doxygen
- Obsługa operacji sieciowych
- gniazda w programowaniu
- podstawowa obsługa operacji sieciowych
- rozwiązywanie nazw
- UDP i TCP jako protokoły transportu
- wywołanie select()
- Obsługa bibliotek zewnętrznych
- biblioteki statyczne i dynamiczne
- zakres zastosowań bibliotek
- konsolidacja własnych programów z użyciem istniejących bibliotek
- Dynamiczne ładowanie modułów
- obsługa dynamicznego ładowania modułu
- wyładowywanie modułów i obsługa ładowania na żądanie
- Budowa własnych bibliotek oprogramowania
- zasady tworzenia bibliotek oprogramowania
- rodzaje bibliotek i różnice w ich budowie
- Dystrybuowanie oprogramowania
- metody dystrybucji oprogramowania
- kompilacja statyczna i dynamiczna
- dystrybucja własnych bibliotek
- analiza warstwy binarnej dostarczonego oprogramowania