Golang

Jest to podstawowy kurs języka programowania Go. Zawiera przegląd podstawowych typów danych, konstrukcji przepływu sterowania, specyfiki stylu programowania oraz wbudowanych narzędzi kompilatora.
Kod: DEV-040
Czas trwania: 32 godzin

Opis szkolenia

Szkolenie skierowane jest przede wszystkim do programistów, którzy mają doświadczenie w programowaniu w innych językach. Obejmuje możliwości i funkcje Go. Implementacja wbudowanych kontenerów i specyficzne cechy konstrukcji kontrolnych są szczegółowo omówione w praktycznych przykładach. Język programowania Go ma własną implementację podejścia obiektowego, dlatego szczególną uwagę przywiązuje się do dekompozycji domen opartych na interfejsie.

Go został opracowany z myślą o efektywnym wykorzystaniu obliczeń współbieżnych i równoległych - dlatego kurs zawiera liczne przykłady użycia algorytmów współbieżnych. Po prezentacji każdego nowego tematu następują praktyczne zadania. Zagadnienia związane ze korzystaniem ze standardowych funkcji biblioteki są sprawdzane, a także z wykorzystaniem pakietów innych firm.

Go zapewnia szeroki zestaw narzędzi wspierających procesy opracowywania i testowania, które są również omówione w tym kursie. Zajmuje się także niektórymi praktycznymi zadaniami, w tym interakcją z relacyjnymi bazami danych, i stanowi przykład implementacji interfejsu REST.

Plan szkolenia

Environment setup
  • Jak zainstalować i skonfigurować kompilator Go. Przykład pisania, kompilacji i uruchamiania prostego programu Go.

Go IDEs.
  • Jakie zintegrowane środowisko programistyczne można wykorzystać do pisania kodu w Go, jak je zainstalować i skonfigurować.

Go tools
  • Podstawowe wbudowane narzędzia wspierające proces rozwoju. Jak skompilować i uruchomić program Go, jak uzyskać dostęp do dokumentacji i dodać dokumentację do kodu

Directory structure / Go modules / Packages
  • Jak zorganizować strukturę katalogu projektu, aby była zgodna z ogólnie przyjętymi regułami. Metody dekompozycji kodu na osobne komponenty dla łatwej konserwacji i ponownego użycia

Installing dependencies
  • Używanie rozwiązań innych firm zamiast pisania własnego kodu. Zarządzanie zależnościami i rozproszone przechowywanie pakietów.

Data types and variables declaration / Zero values / Type conversions
  • Reprezentacja pierwotnych wartości w języku i wykonywanie podstawowych operacji w ich obrębie.

Containers: arrays, slices, maps
  • Jak przechowywać sekwencje wartości: tablice, wycinki i tabele skrótów (ich wewnętrzna reprezentacja i przypadki użycia).

Branching and loops: break, continue, fallthrough, goto
  • Opis algorytmów z pętlami i rozgałęzieniami, różnice w konstrukcjach składni Go od innych języków programowania.

Functions / Multiple return values / Variadic parameters / Function literals and closures
  • Definiowanie funkcji i przekazywanie parametrów. Funkcje z dowolną liczbą argumentów. Możliwości funkcjonalne, anonimowe funkcje i zamknięcia.

Types declarations / Constants / Iota / Structures / Embedded structs / Anonymous structs / Nested structs
  • Sposoby definiowania typów i stałych użytkowników, opisywania sekwencji wartości. Jak opisywać jednostki domeny za pomocą struktur języka.

Pointers / Value and references types
  • Zarządzanie pamięcią i wskaźnikami.

Defer statement
  • Odroczenie wywołania funkcji.

Error handling / Panic recover
  • Jak identyfikować i obsługiwać błędy czasu wykonywania. Sposoby pisania niezawodnego i odpornego kodu.

Methods and interfaces / Method expressions
  • Interfejsy i jego implementacja. Budowanie kodu obiektowego opartego na interfejsach. Metody

Concurrency vs parallelism / Goroutines / Memory model
  • Jak robić wiele rzeczy jednocześnie. Jednoczesne wykonywanie oparte na goroutinach. Model pamięci w Go.

Channels / Blocking and unblocking channels / Select statement
  • Pisanie niezawodnego kodu: wymiana danych między goroutynami w oparciu o kanały.

Waitgroups, mutexes, atomics
  • Synchronizowanie oddzielnych części programu.

Reading and writing files
  • Jak zapisywać dane między uruchomieniami oddzielnych programów.

Standard library: fmt, log, strings, time, sort, http, math, regexp
  • Wbudowane mechanizmy języka do rozwiązywania rutynowych zadań.

Testing and benchmarking
  • Jak zagwarantować stabilność kodu, przeprowadzając testy jednostkowe i jak znaleźć najbardziej skuteczne rozwiązanie dla zadania.

JSON encoding and decoding
  • Wymiana danych z programami napisanymi w innych językach.

Databases / PostgreSQL / MongoDB
  • Przechowywanie danych w relacyjnych bazach danych.

REST application example
  • Przykład pełnoprawnej aplikacji zaplecza.

Unsafe package
  • Rozszerzenia językowe do wykonywania niebezpiecznych funkcji.

Cele

  • Naucz się korzystać z typów danych i konstrukcji składniowych Go
  • Zapoznaj się z modelem obiektowym języka i jak go używać do projektowania komponentów programu
  • Poznaj niektóre główne trudności w tworzeniu współbieżnego kodu programu i sposoby ich przezwyciężenia
  • Dowiedz się, jak korzystać z wbudowanych narzędzi Go i opracowywać kod zgodnie z oczekiwaniami społeczności programistów
  • Naucz się rozwiązywać rzeczywiste zadania na poziomie aplikacji produkcyjnej

Grupa docelowa

  • Programiści, którzy mają doświadczenie w programowaniu w innych językach
  • Architekci, projektanci systemów, testerzy

Harmonogram w Online Cennik
Zapisz sie na nastepny kurs
+
Wczesniejsza rejestracja gwarantuje priorytet. Powiadomimy panstwa o nastepnym zaplanowanym szkoleniu na ten temat.
Online 2420 zł
Bucharest 2420 zł
Kraków 2420 zł
Wroclaw 2420 zł

Uprzejmie informujemy, że płatność za każde szkolenie będzie realizowana w lokalnie obowiązującej walucie. Jednocześnie informujemy, że podane ceny mogą ulec zmianie w zależności od lokalizacji szkolenia oraz trybu jego realizacji. Do ceny netto widocznej przy wybranym szkoleniu należy doliczyć 23% podatku VAT.

Szkolenia, które mogą Cię zainteresować:
DEV-040102196

Zarejestruj się na następne szkolenie

Imię*
Nazwisko*
Firma
Email*
Preferred Location
Numer telefonu*
Twój komentarz
Masz jeszcze jakieś pytania?
Skontaktuj się z nami
Thank you.
Your request has been received.