Theme pro Grav 2: když „funguje" nestačí
Theme běželo na webu a vypadalo hotově. Pak se ukázalo, že „funguje" a „je v pořádku" jsou dvě různé věci.
V minulém díle jsem skončil u nasazeného theme. Jenže pořád to byla jen složka v repozitáři webu. Žádné verze, žádný build, žádná kontrola. Každá změna znamenala ruční kopírování a doufání, že se nic nerozbije.

Z hromady souborů na balíček
Theme dostalo vlastní repozitář, verze a automatické sestavení. Hotový balíček se dá nainstalovat jedním příkazem a nasazení už nehrozí tím, že přepíšu něco, co nahrála manželka v Adminu. Ta část byla rychlá a nudná. Zajímavé bylo to, co přišlo potom.
Review, které nás zpomalilo a zlepšilo
Report jsem označil za hotový, aniž by ho někdo prošel. Teprve samostatné review našlo věci, které moje vlastní testy nikdy nezachytily: stránku, kterou šlo shodit jedinou špatnou adresou, osobní údaje zapomenuté ve výchozím nastavení a české odkazy zapsané natvrdo v kódu. Nic dramatického, jenže přesně tohle by na cizím webu vyskočilo jako první.
Při té příležitosti jsme z balíčku odstranili značku mé ženy, aby se k cizím lidem nikdy nedostala. To zahrnovalo i přepsání historie Gitu a smazání starých releasů. Tyhle nevratné kroky jsme záměrně nechali na člověku a nepokoušeli se je automatizovat.
Kontroly, které musí umět selhat
Dnes theme hlídá automatika: šablony, kód, tajemství v celé historii i závislosti. Každou kontrolu jsem ověřil tak, že jsem do ní schválně vložil chybu a sledoval, jestli CI spadne. Jeden test totiž procházel, aniž by zkoušel to, co jsem myslel. A nejpříjemnější překvapení: i nástroj připnutý na konkrétní verzi, který vypadá bezpečně, měl známé zranitelnosti.
Admin, který mluví vaším jazykem
Formuláře v administraci se teď přepínají podle jazyka přihlášeného uživatele a barvy se nastavují v konfiguraci, ne v kódu. Malé věci, které z theme dělají něco, co by se dalo předat někomu dalšímu.
Co z toho plyne
- Review nenahradí testy, které jsem napsal sám. Pomáhá pohled někoho, kdo se ptá na jiné věci.
- Test, který nikdy nespadl, nic neříká. Dobrá kontrola musí umět selhat.
- Ověřit to tam, kde to uvidí člověk. Teprve skutečný Admin mi dal jistotu, že překlady fungují.
Nebylo to přímočaré a několikrát jsme se zasekli. Výsledkem je ale theme, na které se dá spolehnout víc než na složku souborů, a hlavně způsob práce, který nás posouvá ke kvalitnějšímu výstupu.