Programowanie systemowe w języku Go - Linux w Go dla zaawansowanych

    Czas trwania
    Godzina rozpoczęcia
    Stopień trudności

      Programowanie systemowe w języku Go - Linux w Go dla zaawansowanych

      Opis szkolenia

      Go jest językiem nowoczesnym - powstał dopiero w 2009 roku, ja już w tej chwili jest jednym z najchętniej używanych języków programowania i jego popularnosć ciąglę rośnie, także dzięki wsparciu dużych firm, z Google na czele. Przekonaj się o wszystkich zaletach tego języka,wybierając nasze szkolenia:

      Na dobry początek:

      Dla zaawansowanych:

      Poznaj program szkolenia

      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)

      Spotkajmy się na szkoleniu!

      • MACIEJ NORBERCIAK

        Jestem architektem oprogramowania z doświadczeniem akademickim. W pracy naukowej zajmowałem się sztuczną inteligencją, ale w przemyśle “od zawsze” pracowałem w różnych rolach nad systemami wbudowanymi. Oprócz tego jestem trenerem umiejętności miękkich i technicznych, z szeroko rozumianego obszaru architektury, systemów wbudowanych i języków programowania. W wolnych chwilach lubię się uczyć nowych rzeczy i jeździć na rowerze.

        Podobne szkolenia