Když si necháváte stavět dům, nemusíte umět míchat beton. Ale jestli nerozeznáte základy od fasády, snadno se stane, že platíte za zlaté kliky v domě, který stojí na bahně. Se softwarem je to stejné. Nemusíte umět programovat. Potřebujete jen vědět, z jakých dílů se ta věc skládá, kde se dělá ta drahá práce a o čem vlastně vývojáři mluví, když na schůzce padne slovo „backend“.
Tahle lekce je ten slovník a mapa. Projdeme pět hlavních dílů a na konci je složíme dohromady, abyste viděli, jak vaše kliknutí doputuje od obrazovky k datům a zase zpátky.
Frontend: to, co uživatel vidí a na co sahá
Frontend je všechno, co máte před očima. Tlačítka, formuláře, obrazovka aplikace v telefonu, tabulka, do které píšete. Je to ta část, kterou si lidé pletou s celým produktem, protože je jediná, kterou kdy uvidí.
A právě tady je první past. Hezký frontend svádí k dojmu, že je hotovo. Klient vidí naklikané obrazovky, líbí se mu to a ptá se, proč to ještě nejede. Jenže to, co vidíte, je výloha. Za sklem zatím nemusí být vůbec nic.
Frontend řeší, aby se věci hezky a srozumitelně zobrazily a aby reagovaly na to, co děláte. Nerozhoduje ale o tom, jestli má daný uživatel právo tu fakturu doopravdy smazat, ani jestli to číslo na faktuře sedí. To je práce někoho jiného.
Backend: logika, kterou uživatel nikdy neuvidí
Backend je mozek celé věci a běží schovaný na serveru, mimo dohled uživatele. Tady se odehrává to, co dělá z hezké obrazovky skutečný produkt:
- Pravidla. Co se smí a co ne. Že objednávku nelze odeslat bez adresy, že slevu nejde uplatnit dvakrát.
- Výpočty. Cena s DPH, dopravné podle váhy, kolik vám zbývá kreditu.
- Kdo co smí (oprávnění). Účetní vidí faktury, brigádník ne. Tohle se nikdy nesmí řešit ve frontendu, protože ten jde obejít.
- Komunikace s okolím. Stažení platby z platební brány, odeslání e-mailu, dotaz na sklad.
Tady se skrývá většina opravdové práce a většina nákladů. Proto vás dvě aplikace, které vypadají na první pohled stejně, můžou stát desetkrát rozdílně. Jedna jen ukazuje obrázky, druhá pod kapotou hlídá pravidla, peníze a oprávnění.
Dobrá pomůcka: frontend řeší „jak to vypadá“, backend řeší „co se doopravdy stane“. Když po vás chce vývojář rozhodnutí o pravidlech a oprávněních, řeší backend, a to je ta drahá část.
Databáze: kde data bydlí
Databáze je místo, kde si software pamatuje věci i poté, co zavřete prohlížeč. Zákazníci, objednávky, faktury, kdo se kdy přihlásil. Bez ní by aplikace byla jako člověk s krátkodobou pamětí: každé ráno by zapomněla, kdo jste.
Je to natolik zásadní díl, že mu patří celá příští lekce. Tady si zapamatujte jednu věc: data jsou obvykle to nejcennější, co v celém systému máte. Proč tomu tak je a jak o ně nepřijít, si rozebereme hned vzápětí.
API: jak si jednotlivé díly povídají
Frontend, backend a další systémy spolu musí nějak mluvit. K tomu slouží API. Představte si číšníka v restauraci. Vy u stolu (frontend) nevidíte do kuchyně a nechcete tam chodit. Řeknete číšníkovi, co chcete, on to odnese do kuchyně (backend) a přinese vám hotový talíř.
API je ten číšník. Je to dohodnutý seznam toho, co si můžete objednat a v jaké podobě to dostanete. Nemusíte vědět, jak kuchyně funguje, stačí znát jídelní lístek.
Stejně si přes API povídají i systémy různých firem. Když vám e-shop ukazuje aktuální stav dopravy od přepravce nebo strhne platbu přes platební bránu, posílá objednávky přes jejich API. Proto je dobré se ptát: „Umí to mluvit s naším účetním systémem přes API?“ Když ano, ušetříte si ruční přepisování dat a chyby z něj.
Infrastruktura a hosting: kde to celé běží
Software musí na nějakém počítači reálně běžet, dvacet čtyři hodin denně. Tomu počítači se říká server a tomu, že na něm vaše aplikace bydlí, hosting. Dnes to skoro nikdy nestojí pod stolem, ale běží to v cloudu, tedy v pronajatých počítačích velkých poskytovatelů.
To přináší pár věcí, které se vás přímo dotknou v peněžence i ve spánku:
- Provozní náklady. Hosting se platí měsíčně, ať produkt používá deset lidí, nebo deset tisíc. Čím větší zátěž, tím větší účet.
- Škálování. Když na vás v pátek v osm večer naběhne reklama a přijde nával, dobře postavená infrastruktura si přibere výkon. Špatně postavená spadne přesně ve chvíli, kdy nejvíc vyděláváte.
- Bezpečnost a zálohy. Tady bydlí vaše data, takže tady se řeší, kdo se k nim dostane a co se stane, když server selže. Téma na samostatnou lekci, zatím stačí vědět, že to není zadarmo a nesmí se to ošidit.
Jak to dohromady tvoří produkt
Projděme si cestu jednoho jediného kliknutí. Zákazník v e-shopu zmáčkne „Zaplatit“.
Frontend ten povel zabalí a přes API ho pošle na backend, který běží na serveru někde v cloudu. Backend zkontroluje pravidla (je zboží skladem? sedí cena?), přes další API požádá platební bránu o stržení peněz, výsledek si uloží do databáze a pošle zpátky odpověď. Frontend ji dostane a zobrazí „Děkujeme za objednávku“. Pro zákazníka okamžik, pod kapotou pět dílů, které si musely poradit.
A přesně proto se ten slovník vyplatí znát. Když umíte říct „tohle je problém ve frontendu, jen se to špatně zobrazuje“ místo „nefunguje to“, ušetříte hodiny dohadování a často i peníze za hledání chyby na nesprávném místě. Nemusíte umět stavět. Stačí vědět, na co se ptát a kde se dělá ta drahá práce. Příště se podíváme na databázi, na to nejcennější, co v celém systému máte.