Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

Programování distribuovaných systémů v jazyce GO

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
NI-GOL KZ 5 0P+3C česky
Garant předmětu:
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra počítačových systémů
Anotace:

Předmět si klade za cíl naučit studenty implementovat distribuované systémy založené na mikroslužbách s využitím trojice technologií programovací jazyk GO, serializační formát Protocol Buffers a komunikační protokol gRPC a vysvětlit filozofii za jejich používáním. GO se stal v posledních letech populárním programovacím jazykem s velkou uživatelskou základnou, ve kterém je napsáno velké množství známých nástrojů, jako Docker, Kubernetes, Prometheus, Terraform. Moderní distribuované aplikace využívají dekompozici na mikroslužby, které umožňují horizontální škálování nejvíce namáhaných mikroslužeb. GO je typický programovací jazyk, do kterého se služby přepisují v situaci, kdy je i horizontální škálování příliš nákladné. Jeho tzv. gorutiny usnadňují programování aplikací s velkým množstvím paralelizace a synchronizace. Služby napsané v jazyce GO, zvláště v kombinaci s knihovnou gRPC, jsou oceňovány pro svou uniformnost, vedoucí k jednoduchému pochopení i pro vývojáře neznalé architektury konkrétní služby.

Požadavky:

Předmět předpokládá znalosti programování v jiném programovacím jazyce (C, C++, Java) alespoň na úrovni předmětu BI-PA2 a základní znalosti paralelního programování na úrovni předmětu BI-OSY.

Další požadavky na studenta: profil BI FIT.

Osnova přednášek:

Předmět nemá přednášky.

Osnova cvičení:

Základní konstrukce jazyka Go, nastavení prostředí

Pokročilé konstrukce jazyka Go

Úvod do souběžnosti (concurrency) v Go, context

Vývoj větších programů, typické rozložení projektů, Go templates

Interface, generiky

Chyby, panic, recover

Tvorba a obsluha HTTP serveru a klienta, standardní knihovna Go

Protocol Buffer, gRPC server a klient

Návrh a obsluha mikroslužeb

Testování programů, code coverage, mockování

Ukazatele, unsafe, import knihoven z jazyka C

Konzultace semestrálních prací

Rezerva, Obhajoba semestrální práce

Cíle studia:
Studijní materiály:

Bodner J. : Learning GO (2nd Edition). O'Reilly, 2024. ISBN 9781098139292

Harsanyi T. : 100 GO Mistakes and How to Avoid Them. Manning, 2022. ISBN 9781617299599

Google: A tour of GO, online.go.dev/tour/

Poznámka:

předmět je vyučován v češtině

Další informace:
bude doplněno
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 1. 4. 2025
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet8271006.html