Programování distribuovaných systémů v jazyce GO
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ů:
-
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (volitelný předmět)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (volitelný předmět)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (volitelný předmět)
- Study plan for Ukrainian refugees (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2023 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)
- Kvantová informatika (volitelný předmět)