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
    1. Kompozice > dědičnost, malé interface, čisté hranice
    2. Funkční možnosti (funkce jako hodnoty), options pattern
  • Tvorba objektů (creational)
    1. Factory a konstrukční funkce, Functional Options
    2. Builder (idiomatické alternativy v Go), singleton (bezpečná inicializace)
  • Strukturální vzory
    1. Adapter (wrap přes io.Reader/Writer), Decorator (middleware, logování)
    2. Proxy (cache, lazy init), Facade (vrstvy nad subsystémy), Bridge (oddělení rozhraní/implementace)
  • Behaviorální vzory
    1. Strategy (výměna implementací přes interface)
    2. Command (operace jako hodnoty), Template Method (embedding + hooky)
    3. Observer (kanály/event bus), Iterator (idiomatické Next/Err/Close)
  • Architektonické principy
    1. „Clean“ struktura v Go: cmd/, internal/, balíčky a závislosti
    2. DI bez frameworků, kontrakty přes interface, testovatelnost
  • Testování, měření a odolnost
    1. Table-driven tests, mocks/stubs vs. fakes, golden files
    2. 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