Advent of code v Go

(publikováno 08.12.2020) Go, O mně

Podobně jako minule, i pro letošní Advent of Code jsem si vybral nový jazyk. Tentokrát volba padla na staticky typovaný a kompilovaný Golang, zkráceně Go, ve kterém je napsán třeba Docker.

Advent of code v Go

Tento článek patří do seriálu Advent of Code. Ostatní články seriálu:


Na jaře jsem začal zpracovávat úkoly z roku 2019 v Elixiru. A to když jsem nastoupil na nový projekt, který byl v právě tomto jazyce napsán. Jenže pak přišla korona a projekt byl pozastaven. Když se naskytl jiný projekt, byl opět v téměř novém jazyce pro mě. A to v Go, často označovaném jako Golang, se kterým jsem ale měl již drobné zkušenosti z Erasmu ve Finsku.

Pokud se chcete Go naučit, doporučuji jiný můj článek Jak začít s jazykem Go

Zdrojáky opět na Githubu včetně testů

Stejně jako AoC 2019, i letošní řešení nahrávám do veřejného repozitáře na svůj Github. Kdokoli chce, může se podívat, inspirovat či vytvořit pull request. A i když v tomto malém měřítku to asi není to pravé, veškeré úkoly dělám metodou TDD (Test Driven Development). Každý úkol má totiž ukázku, na které je možné si program prvně otestovat.

Včetně pipeline

Není to ale jen o úkolech, které Eric připravuje. Když jsem kód začal nahrávat na Github, rozhodl jsem se využít také Github Actions. Po každém nahrání se tedy zkontroluje čistota kódu pomocí Go linteru a také se spustí testy. I to pro mě bylo nové, takže úkoly to končit nemusí.

Při jednom rozhovoru Eric Wastl prohlásil, že všechny úkoly lze vyřešit do několika sekund. Pokud tedy program běží déle než minutu, pravděpodobně existuje lepší řešení.

Dny, na kterých jsem se zasekl

Některé dny byly lehčí, jiné zase těžší. Některé mi jen zabraly více času, u jiných jsem potřeboval poradit či nakopnout. Za to děkuji YouTube kanálu TurkeyDev, kamarádovi a spolužákovi s Github jménem Kobzol a komunitě na Redditu. Zde je seznam dnů ,kdy jsem měl problémy:


Také plníte Advent of Code, nebo jiné výzvy? Podělte se v komentářích

K tomuto článku již není možné přidávat další komentáře