Učili sme sa postupne a každá z nich na inej vrstve.
OZORApp nás naučila, že „offline-first" nie je o vypnutej sieti, ale o sieti, ktorá klame: na maďarskej EDGE sieti sa volanie na server ani nesplnilo, ani neodmietlo — len viselo, takže service worker donekonečna čakal na odpoveď a aplikácia sa nenačítala vôbec, hoci ju mal človek celú v cache. Odvtedy nemáme v žiadnom projekte sieťové volanie bez vlastného timeoutu.
Inzerátor nás naučil čítať prekážku správne: keď WAF na strane Bazosu blokuje IP adresu hostingu, zlá odpoveď je prevŕtať dieru do domácej siete; správna je otočiť smer a nechať démona počúvať na databázovom kanáli.
Health Bro nás naučil, že meno poľa nie je kontrakt — pole s menom, ktoré sľubovalo sedem dní, potichu nosilo päťdesiatdeväť a objem dát posielaných modelu narástol na stotridsať kilobajtov skôr, než si to niekto všimol.
Objatie nás naučilo, že chyba nemusí byť v kóde: deploy nahrával len časť repozitára, takže registrácia, ktorá ležala v nenahranom súbore, fungovala lokálne a v ostrej prevádzke padala na päťstovku.
Farangur nás naučil aj to, čo sa neoplatí postaviť: fungovanie bez pripojenia bolo v návrhu tretinou zložitosti a padlo jedinou vetou — na cestu sa balíme doma pri wifi. Vedľa OZORApp, kde práve mŕtve pripojenie rozhodovalo o tom, či sa appka vôbec otvorí, je to ten istý problém s opačnou odpoveďou. Rozdiel nie je v technike, ale v tom, kde to má človek v ruke.
Syntrofi nás naučila, čo stojí kópia. Druhú generáciu sme urobili tak, že sme prvú skopírovali a prepísali v nej mená — a rozbili sme tým prihlásenie naraz na každom vstupnom bode, lebo cesta k súkromným dátam sa zrazu volala inak, než čakal kód. Odvtedy je akcia dáta, nie nový deploy, a nasadenie má poistku, ktorá tú cestu kontroluje.
A účtovníctvo nás naučilo to najdrahšie: kód nikdy nebol to najťažšie. Bankový súhlas expiruje zhruba každý deň, kým prístupový token žije mesiace — token sa teda vesele obnovuje nad súhlasom, ktorý je už mŕtvy, banka vráti chybu, ktorá o súhlase nepovie ani slovo, a vy hľadáte chybu vo svojom kóde. V dokumentácii to nenájdete. Nájdete to večer pred splatnosťou odvodov, keď dávka, ktorá minulý mesiac prešla, zrazu neprejde.