Lekce 02 / 07

Z čeho se software skládá

Frontend, backend, databáze, API, infrastruktura. Slovník a mapa, díky které pochopíte, o čem vývojáři mluví, a budete se umět ptát.

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.