GopherCon UK 2018
Should I Stay or Should I Go
Poté, co jsem měl poslední dva roky utrum s technicko-pracovním vzděláváním, se na mě usmálo štěstí a zásluhou nového zaměstnavatele jsem vyrazil na svoji první zahraniční konferenci.
Nových věcí v nové práci je (a bylo) dost a tak jsem měl poměrně široký výběr (technických) domén, ale nejvíc mě to táhlo ke Golangu — i když jsem k němu přišel jak slepý k houslím, tak jsem si ho velmi rychle oblíbil. A tak, když se v mém Twitter feedu mihnul @GopherConUK, bylo rozhodnuto — vyrazím do Anglie!
London Calling
Konference se konala ve dnech 1.-3. srpna v Londýně a ne jen tak ledaskde, ale přímo v The City, v prostorách bývalého pivovaru z 18. století, The Brewery. Luxusní místo pro konferenci.
První den byly workshopy (kterých jsem se neúčastnil) a pak dva dny klasických přednášek (to je gró, proč na konference chodím). No a samozřejmě, sociální události (kterým se, jakožto introvert, striktně vyhýbám).
Thursday’s Child
Celkově, čvrteční přednášky mi přišly slabší, než ty páteční. Možná je to i záměr organizátorů?
🔑 You Might Be a Go Contributor Already and Not Know It
Úvodní keynote Aditya Mukerjeeho (@chimeracoder) se točila kolem různých způsobů kontribuce — jako gopher (fanoušek Golangu) můžete:
- ptát se a odpovídat na StackOverflow,
- reportovat issue na GitHubu,
- pořádat MeetUp,
- publikovat články
- a samozřejmě, sdílet svůj Go kód na GitHubu.
Obecně, budování a participace na Golang komunitě bylo téma, které se rekurentně na konferenci vracelo.
👍 Three Billy GOats Gruff — a developer’s tale from VMs to serverless
Občas mají přednášky obskurní názvy, ovšem tahle byla dobrá. Michael Hausenblas (@mhausenblas) prezentoval přechod z jednoduchého monolitu (majícího 2 goroutines), přes rozpad stejné funkcionality do kontejnerovaných micro-servis (běžících na Kubernetes) a skončil u serverless funkcí (implementovaných jako AWS Lambdas).
Michael pracuje v Red Hatu (a tudíž OpenShift), takže nepřekvapí, že jeho doménou byly hlavně kontejnery (v Lambdách měl dokonce jeden anti-pattern), ale jeho prezentace pěkně a jednoduše ukázala, jak by taková transition mohla vypadat.
😐 Broadcasting Channels: Writing a timeout-aware abstraction to enable asynchronous fanout in Go
Sean Kelly (@StabbyCutyou) má hodně rád svého psa — jeho slidy se jím jenom hemžily. Nicméně celkem vtipné to bylo. Sean si jen tak pro radost (a studium) naimplementoval broadcasting pomocí channels.
V podstatě bylo vyznění jeho přednášky víc o Enterprise Integration Patterns (ačkoliv je nikde explicitně nezmínil), než o Go (kterého stejně moc neukázal). I když si původně myslel, že to bude jednoduché, tak se postupně dopracoval k věcem jako Error Queue Channel, re-tries, time-outs atd. Prostě to, co je v EIP už dávno vyřešené.
👍 Orchestration of microservices
Bernd Rücker (@berndruecker) je spolu-zakladatel workflow enginu Camunda. Ani v jeho případě nebyla přednáška moc o Go, jako spíš o BPMN, workflow enginech a problémech distribuovaných architektur. Pokud do toho posledního něco málo děláte, asi by vás v jeho prezentaci nic moc nepřekvapilo, ale přednáška byla vtipná a svižná.
Dva, tři nejzajímavější body zahrnovaly:
- Strategie pro Fallacies of distributed computing (ignore | re-throw error | retry | stateful retry)
- Konzistence — těžký problém všech distribuovaných architketur. Tady mě pobavila hláška “Grownups don’t use distributed transactions”. 😁 Lepší je použít kompenzace (Saga pattern).
- Orchestrace a Choreografie — choreografie zatemňuje viditelnost procesu, tj. je obtížnější a víc náchylná k (designovým) chybám.
👎 Component and integration tests for micro-services
Jednoznačně nejslabší přednáška celé konference — Dmitry Matyukhin měl prvně dlouhé intro pro začátečníky o základech testování a pak se podělil o to, jak napsali nějaké služby v Go, ale testovali je… v Ruby!?! Takže místo Golangu jsme koukali, jak se dělá BDD v Cucumber 😩 Já jsem teda valil oči a přemýšlel, jestli si chlapec nespletl konferenci. 🤦
👍 Documenting Go Code with Beautiful Tests
Přednáška Pawła Słomky (@pawel_slomka) byla jedna z nejtechničtějších a taky nejvtipnějších toho dne: hodně jsem se zasmál jeho vtipu o Schrödinger’s TDD — is it TDD alive, or dead? 😹
Ohledně testování v Go zmiňoval:
- Používání Testing flags, zejména
-race
pro detekci data race. - Assertion knihovnu Testify
- Check functions — inspirace z httptest package.
Paweł byl jediný, s kým jsem si na konferenci pokecal — jednak jsem chtěl něco dovysvětlit ohledně těch check functions a jednak jsme probrali běhání maratonů. 🏃
🔑 Code, Content & Crafting Your Voice
Závěrečná keynote Amy Chen (@TheAmyCode) byla velmi… milleniálská. Jak formou, tak obsahem. Doporučuju, pokud chcete budovat svůj personal brand. Zejména formou YouTube kanálů a všech těch moderních sociálních sítí, bez kterých Generace Y nedokáže žít. Možná, že Amy je dobrá kóderka… ale já to zjišťovat nebudu.
Nicméně, abych to úplně nezahodil, jeden dobrý bod tam byl — pokud chcete být jakkoli virtuálně přítomni ve veřejném prostoru, tak prvotní by mělo být si definovat identitu — jak se chcete prezentovat, jak chcete, aby vás vaše audience vnímala. Aneb “Followers follow your identity."
Friday I’m in Love
Na přednášky ze (zajímavějšího) druhého dne GohperConu se podíváme v příštím článku: GopherCon UK 2018, den 2. Plus nějaké celkové shrnutí konference.