Testování pro mnoho lidí (včetně mě) není nic zábavného, ale po letech programování připouštím, že je lehčí mít pořádné testy, než neustále kompilovat a spouštět aplikaci a pomocí debuggeru se snažit pochopit, co je špatně. Už ta ztráta času. I když je Go hodně rychlé, kompilace pořád představuje pár vteřin, následně spustit aplikaci, dostat na místo, kde si chcete něco ověřit a následně konečně to ověřit. Mnohdy to vyžaduje např. zásahy do databáze, otevírání browseru a navigace na stránky apod. Prostě a jednoduše, je to neefektivní. A hlavně, jsme programátoři, automatizujeme co se dá!
Tentokrát kratší vsuvka.
Potřeboval jsem na svém Macovi zkompilovat program pro 🐧 Linux. Samozřejmě mě jako první napadl cross compiler, ale to není ono. Nehledě na to, že bych pak stejně nemohl program vyzkoušet. Samozřejmě by s trochou cviku šlo zkusit nějaký VirtualBox apod., ale mě napadlo elegantnější řešení - Docker!
Nejdřív si nainstalujete na počítač docker - podívejte se na instalační stránky a vyberte si instalaci podle svého systému. V ideálním případě by toto mělo fungovat:
Dnes si povíme něco o tom, jak si nakonfigurovat takový program v Go.
Konfigurací zde myslím způsob, jak předat programu parametry, aby mohl běžet nezávisle. V zásadě máte několik možností a pojďme si o nich povědět detailněji.
- parametry příkazové řádky
- pomocí proměnných prostředí
- databáze
- specializované programy
Tento výčet není konečný, ale prozatím si s ním vystačíme.
Příkazová řádka
Podívejme se na první možnost, parametry na příkazové řádce.
Pro tento případ má Go package flags
. Možná už jste si sami všimli, že na rozdíl od jazyků odvozených od C (C, C++, Java apod.) tu funkce main
nepřijímá pole parametrů. Pro připomenutí, takto vypadá main
v Go.