Go – návrhové vzory (GO5)
Programování, Rust, Go, Julia
Máte už zvládnuté Go a jeho vlastnosti a rádi byste se podívali na návrh software? Go se neřadí mezi objektově orientované jazyky, protože nenabízí datovou dědičnost. Na druhou stranu umožňuje definovat abstraktní rozhraní a na jeho základě postavený polymorfismus. Díky tomu můžete aplikovat většinu objektově orientovaných návrhových vzorů ale i další zajímavé techniky.
Vyzkoušejte si známé a zavedené postupy ze světa objektově orientovaného programování a zajímavé alternativní přístupy. Go je v tomto ohledu velmi flexibilní a tak bude vaším hlavním úkolem udržet v systému pořádek. Přijďte se pobavit, v čem se návrh aplikací shoduje s jinými jazyky a kde má spíše smysl se odchýlit. Přineste si vlastní příklady a nápady k rozebrání.
TOTO ŠKOLENÍ VÁM POMŮŽE:
- Seznámit se s aplikací návrhových vzorů v Go a jejich idiomatickými alternativami
- Pochopit výhody kompozice a design malých rozhraní (interfaces) pro udržitelnost kódu
- Osvojit si creational patterns: factory funkce, Functional Options a idiomatické buildery
- Implementovat strukturální vzory: Adapter, Decorator, Proxy, Facade a Bridge v Go
- Využívat behaviorální vzory: Strategy, Command, Observer a idiomatický Iterator
- Navrhnout čistou strukturu projektu (cmd/, internal/, balíčky) a dependency management
- Zlepšit testovatelnost a odolnost: table-driven tests, fakes/mocks, timeouts, retries a circuit-breaker
KDO BY SE MĚL KURZU ZÚČASTNIT?
- Vývojáři v Go
- Backendoví inženýři a microservices vývojáři
- Softwaroví architekti a technickí leadři
- DevOps/SRE inženýři odpovědní za spolehlivost
- Vývojáři zaměření na testování a kvalitu kódu
Privátní školení a termíny na míru
Toto téma je možné zrealizovat pouze jako privátní, a to nejen formou uzavřeného firemního kurzu, ale také jako individuální konzultaci pro jednotlivce.
V případě kurzu na míru je níže uvedená osnova pouze inspirací. Finální obsah vzdělávání, jeho délka i termíny budou přizpůsobeny konkrétním vstupním znalostem, potřebám a cílům účastníků.
Cenovou nabídku vám rádi připravíme na základě vstupů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.
KDE A KDY KURZ PROBÍHÁ?
Kontaktujte nás
S námi
máte na výběr: Přijďte na
kurz osobně do naší učebny, nebo se ke kurzu
připojte online. Pokud preferujete online formu, uveďte prosím do poznámky v objednávce "Připojím se virtuálně".
Více informací k hybridní formě školení
naleznete zde.
Náplň kurzu:
Skrýt detaily
-
Návrhové principy v Go
-
Kompozice > dědičnost, malé
interface
, čisté hranice
-
Funkční možnosti (funkce jako hodnoty), options pattern
-
Tvorba objektů (creational)
-
Factory a konstrukční funkce, Functional Options
-
Builder (idiomatické alternativy v Go), singleton (bezpečná inicializace)
-
Strukturální vzory
-
Adapter (wrap přes
io.Reader
/Writer
), Decorator (middleware, logování)
-
Proxy (cache, lazy init), Facade (vrstvy nad subsystémy), Bridge (oddělení rozhraní/implementace)
-
Behaviorální vzory
-
Strategy (výměna implementací přes
interface
)
-
Command (operace jako hodnoty), Template Method (embedding + hooky)
-
Observer (kanály/event bus), Iterator (idiomatické
Next
/Err
/Close
)
-
Architektonické principy
-
„Clean“ struktura v Go:
cmd/
, internal/
, balíčky a závislosti
-
DI bez frameworků, kontrakty přes
interface
, testovatelnost
-
Testování, měření a odolnost
-
Table-driven tests, mocks/stubs vs. fakes, golden files
-
Circuit-breaker, rate limiter, timeouts, retries (s backoff)
-
Předpokládané znalosti:
-
Znalost programování v Go
-
Doporučený předchozí kurz:
-
Go – paralelní programování (GO4)
-
Časový rozvrh:
-
3 dny (9:00hod. - 17:00hod.)
-
Jazyk:
-
Česky