Trwają zapisy do grupy

Szkolenie: Programowanie w języku Go

Szkolenie Programowanie w języku Go to praktyczny kurs, który uczy tworzenia wydajnych i skalowalnych aplikacji w Go, najlepsze praktyki, narzędzia developerskie oraz wykorzystanie biblioteki standardowej

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:3 dni (24h)

Poziom zaawansowania:

Kod kursu:GO/PROG

wydajne-aplikacjeaplikacje-serwerowejezyk-goprogramowanie-go

Dostępne terminy szkolenia

  • Termin
  • Trener
  • Cena
  • Lokalizacja
  • Zapis

Termin:

17 czerwca - 19 czerwca
Trwają zapisy na szkolenieTrwają zapisy na szkolenie

Trener:

Łukasz Andrzejewski

Cena:

2805 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

28 września - 30 września
Trwają zapisy na szkolenieTrwają zapisy na szkolenie

Trener:

Trener Sages

Cena:

2805 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

2 grudnia - 4 grudnia
Trwają zapisy na szkolenieTrwają zapisy na szkolenie

Trener:

Łukasz Andrzejewski

Cena:

2805 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Forma szkolenia

Interesuje Cię szkolenie stacjonarne?

Powiadom o kolejnych terminach

Interesuje Cię szkolenie w innym terminie?

Programowanie w języku Go

Cele szkolenia

  • Szkolenie przygotowuje do samodzielnego projektowania i implementowania aplikacji w języku Go z wykorzystaniem idiomatycznej składni oraz narzędzi developerskich

  • Szkolenie uczy stosowania mechanizmów współbieżności oraz wzorców projektowych charakterystycznych dla ekosystemu Go

  • Szkolenie omawia wykorzystanie najważniejszych modułów biblioteki standardowej w praktycznych zastosowaniach programistycznych

  • Szkolenie rozwija umiejętność analizy, debugowania i optymalizacji kodu Go w kontekście wydajności i bezpieczeństwa


Dla kogo?

  • Programistów z podstawowym doświadczeniem w dowolnym języku, chcących poznać Go i rozwijać nowoczesne aplikacje

  • Osób realizujących zadania związane z tworzeniem serwisów backendowych, mikrousług lub narzędzi CLI

  • Specjalistów IT zainteresowanych zwiększeniem wydajności i bezpieczeństwa wytwarzanego oprogramowania


Efekty kształcenia

  • Uczestnik projektuje aplikacje w języku Go zgodnie z najlepszymi praktykami

  • Uczestnik analizuje i implementuje mechanizmy współbieżności z użyciem goroutines i kanałów

  • Uczestnik obsługuje narzędzia developerskie oraz środowisko pracy Go

  • Uczestnik wykorzystuje wzorce projektowe i idiomy charakterystyczne dla Go

  • Uczestnik testuje i debugguje kod z użyciem narzędzi ekosystemu Go

  • Uczestnik wdraża aplikacje z wykorzystaniem biblioteki standardowej Go


Wymagania

  • Podstawowa umiejętność programowania w dowolnym języku


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

Program szkolenia

Pobierz program w PDF

Podstawy języka

  • Filozofia projektowa Go: świadoma prostota, kompilacja do kodu natywnego, współbieżność wbudowana w język, silne typowanie statyczne

  • Konfiguracja środowiska pracy programisty (kompilator, IDE, debugger)

  • Model kompilacji i przepływ pracy oparty na narzędziu go

  • Kontrola jakości kodu: analiza statyczna (go vet), automatyczne formatowanie (gofmt, goimports) oraz linting (staticcheck)

  • Składnia języka i przyjęte w społeczności konwencje kodowania

  • Typy podstawowe oraz typy złożone

  • Zmienne, stałe, kontrolowana mutowalność i zjawisko shadowingu

  • Operatory

  • Instrukcje sterujące, pętle oraz wielokryterialne wyrażenie switch

  • Funkcje, closures i mechanizm defer

  • Definiowanie i użycie struktur oraz typów wyliczeniowych z wykorzystaniem iota

Model pamięci i wskaźniki

  • Semantyka wartości i semantyka referencji w Go

  • Przekazywanie argumentów przez wartość a przez wskaźnik — implikacje wydajnościowe i projektowe

  • Wskaźniki w Go: notacja *T, operator &, dereferencja

  • Typy o semantyce referencyjnej: map, slice, channel

  • Wartość nil: koncepcja zero value oraz pułapka nil dereference panic

Metody, interfejsy i kompozycja

  • Definiowanie typów własnych: alias typu a nowy typ nominalny

  • Metody z receiverem wartościowym i wskaźnikowym — kryteria wyboru

  • Kompozycja przez embedding, promowanie pól i metod

  • Definiowanie i niejawna implementacja interfejsów

  • Pusty interfejs: interface{} oraz alias any

  • Type assertion i type switch w praktyce

  • Kluczowe interfejsy biblioteki standardowej: io.Reader, io.Writer, fmt.Stringer, error

  • Polimorfizm w Go — kompozycja jako alternatywa dla dziedziczenia

Obsługa błędów

  • Filozofia Go wobec błędów: błąd jako wartość w opozycji do modelu wyjątków

  • Interfejs error oraz funkcje errors.New i fmt.Errorf

  • Idiomatyczne sprawdzanie błędów — wzorzec if err != nil

  • Sentinel errors — kiedy definiować własne wartości błędów, a kiedy ich unikać

  • Własne typy błędów: implementacja interfejsu error i wzbogacanie kontekstu diagnostycznego

  • Opakowywanie błędów: czasownik %w, funkcje errors.Is oraz errors.As

  • Rola defer w obsłudze błędów i wzorzec named return values

  • Panic i recover — dopuszczalne zastosowania oraz konwersja do wartości error

  • Biblioteki zewnętrzne (np. github.com/pkg/errors) i utrwalone wzorce stosowane w praktyce

Codzienne programowanie w Go

  • Kolekcje standardowe — slice i map w zastosowaniach praktycznych

  • Programowanie w stylu funkcyjnym: funkcje wyższego rzędu, closures, funkcje jako wartości przekazywane do innych funkcji

  • Wprowadzenie do typów generycznych: parametryzacja funkcji i struktur oraz definiowanie type constraints

  • Iteratory funkcyjne (iter.Seq, iter.Seq2) i range-over-func w Go 1.23+ — definiowanie, konsumpcja i komponowanie operacji

  • Organizacja projektu: system modułów, katalog internal, mechanizm go.work

  • Mechanizmy widoczności i enkapsulacja danych

  • Testowanie: testy jednostkowe, table-driven tests, testy integracyjne, mockowanie zależności

Współbieżność

  • Model współbieżności Go: goroutines, scheduler M:N oraz rola zmiennej GOMAXPROCS

  • Kanały (channels) — deklaracja, operacje send i receive, warianty buffered i unbuffered

  • Zamykanie kanałów, iteracja z użyciem range oraz idiom done channel

  • Kanały kierunkowe: chan<-, <-chan

  • Instrukcja select: multipleksowanie, wzorzec timeout, gałąź default

  • Prymitywy synchronizacji: sync.WaitGroup, sync.Mutex, sync.RWMutex, sync.Once, sync.Map

  • Operacje atomowe z pakietu sync/atomic

  • Pakiet context: zarządzanie cyklem życia operacji, propagacja anulowania, warianty WithTimeout, WithCancel oraz WithValue

  • Wzorce współbieżności: worker pool, pipeline, fan-out/fan-in, semaphore pattern

  • Graceful shutdown — obsługa sygnałów systemowych, context z limitem czasu, zwalnianie zasobów

  • Pakiet errgroup (golang.org/x/sync/errgroup) — współbieżne operacje z propagacją błędów

  • Race detector — wykrywanie race conditions i typowe pułapki dostępu współdzielonego

Budowanie aplikacji

  • Obsługa argumentów wejściowych i walidacja danych użytkownika

  • Zarządzanie zmiennymi środowiskowymi i konfiguracją aplikacji

  • Praca z systemem plików i operacje I/O

  • Budowa serwisu HTTP: routing, middleware, spójna obsługa błędów, graceful shutdown

  • Integracja z bazą danych: pakiet database/sql oraz wzorzec repozytorium

  • Tworzenie i publikowanie bibliotek oraz narzędzi CLI

Autorem szkolenia jest Łukasz Andrzejewski

Od ponad 17 lat z pasją dzielę się wiedzą jako trener, wspierając rozwój kompetencji technologicznych wśród specjalistów IT na różnych etapach ich kariery. W ostatnich 5 latach przeszkoliłem ponad 2000 osób, prowadząc szkolenia zarówno otwarte, jak i dedykowane, dla czołowych firm z sektorów bankowości, ubezpieczeń i IT – m.in. Santander Bank Polska, ERGO Hestia, Asseco Poland oraz Orange. Specjalizuję się w szerokim zakresie technologii – od rozwiązań z ekosystemu Java, przez nowoczesny frontend,…

Wybrane opinie

Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

4.8
Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowanaŚrednia ocen Sages w serwisie Google Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowana

4.07.2025

Uczestnik szkoleniaProgramowanie w języku Go

Piotr Mazur, Ericsson Sp. z o.o.

Bardzo dobry prowadzący, z dużą wiedzą. Znaczna część szkolenia to pisanie kodu w ramach ćwiczeń.

Więcej opinii