-
Co zyskasz dzięki szkoleniu ?
Cele szkolenia
Celem szkolenia jest zapoznanie uczestników z aspektami programowania systemowego w języku Go.
Umiejętności
Dzięki szkoleniu uczestnik będzie:
- Rozumieć wewnętrzne mechanizmy Go, działanie kompilatora, garbage collectora, modele pamięci
- Umieć pisać wydajny, niskopoziomowy kod w Go na Linuxie
- Kontrolować procesy i demony z poziomu Go
- Komunikować się między procesami w Go
- Używać różnych formatów kodowania do serializacji złożonych struktur danych
- Komunikować się przez sieć z innymi aplikacjami
-
Czy to szkolenie jest dla Ciebie ?
Profil uczestników
Szkolenie przeznaczone jest dla programistów, projektantów i architektów oprogramowania, którzy mają już znają podstawy składni języka Go i chcieliby pogłębić swoją wiedzę związaną z programowaniem systemowym w tym języku. Wymagana jest podstawowa znajomość architektury systemu Linux.
Przygotowanie uczestników
Szkolenie przeznaczone jest dla osób, które umieją już programować w Go i mają doświadczenie w kompilacji, uruchamianiu i debugowaniu kodu w tym języku. Wymagana jest umiejętność pracy w systemie Linux. Wcześniejsza instalacja Go oraz VS Code i plugina do Go jest mile widziana, ale nie wymagana. Szkolenie prowadzone będzie przy użyciu VS Code, GoLand oraz środowiska Go Playground na systemie Linux.
-
Czas trwania
-
Przed nami:
- 2 dni po 8 godzin lekcyjnych
-
Szczegółowy program szkolenia
Szczegółowy program szkolenia
Wprowadzenie problematyki programowania systemowego
- Programowanie systemowe a aplikacyjne
- Linux - podstawy architektury systemu: system calls: kontrola procesów, zarządzanie plikami, zarządzanie urządzeniami, komunikacja, zarządzanie pamięcią, zarządzanie uprawnieniami
Wnętrzności Go
- Kompilator Go: go-build, skaner/parser/SSA (static single assignment), linker, metadane, bootstrap, asembler Go
- Garbage collector, algorytm tricolor, model pamięci
Operacje we/wy
- Praca z systemem plików, pakiet os, prawa dostępu, pakiety io i bufio, pakiet syscall
- Strumienie, pakiet bytes, pakiet flag
- Pseudoterminale
- Praca z plikami systemu operacyjnego
Komunikacja między procesami
- Podstawy: procesy, procesy potomne, demony, usługi, pakiet flag
- Sygnały, pakiety signal
- Pipes, anonimowe pipes,standardowe pipes we/wy
- Kody wyjścia, kody wyjścia i deferred functions, kody wyjścia i goroutines
Reflections - podstawowe mechanizmy, obsługa złożonych typów, refleksje na refleksje
Pakiet unsafe
Pakiet CGO
- Kod C w Go; kod Go w C
- Typy w C i Go
- Praca ze strukturami: ręczny padding, packed, unpacked w C
- Dobre praktyki CGO
Kodowanie danych w Go
- Kodowania tekstowe - CSV, JSON, XML
- Kodowania binarne - gob, protobuf, BSON
Komunikacja sieciowa w Go
- Podstawy: TCP/IP, UDP, podstawowe narzędzia
- Pakiet net
- Sockets i RPC w Go
- Serwery i klienci: TCP, UDP, RCP
- net/http, serwer i klient web
Metoda realizacji
Szkolenie ma formę następujących po sobie wykładów i ćwiczeń praktycznych, wykonywanych indywidualnie lub w ramach programowania w parach (pair programming).
POBIERZ PROGRAM W PDF
-
Ścieżka rozwoju
-
W ramach szkolenia zapewniamy
- materiały szkoleniowe
- certyfikat potwierdzający udział w kursie
- pełna obsługa cateringowa ( dla szkoleń stacjonarnych)