Frontend vs Backend vs Fullstack a jak se na to dívám já
Jaroslav Beňo
20.08.2021
5 minut čtení
Při řešení a vývoji aplikací si umíme vývoj rozdělit na dvě hlavní části – front end a back end.Front end je v podstatě to co vidíš očima - to s čím se uživatel jako prvním setká (během vysoké školy mě pucoval jeden profesor, že člověk, co kliká naši aplikaci je uživatel a ne uživatel). Následně back end je vše vzadu, co běžný uživatel nevidí, co se děje na pozadí, většinou je to zpracování dat, komunikace s databází a podobně. Po internetu kolují desítky memes, ve kterých se tyto rozdíly mezi frontendem a backendem zobrazují. Prohlédni si pár z nich:Doufám, že máš teď tak hrubou představu o tom, co je frontend a co backend. Jak se nám snaží podsunout tyto meme obrázky, backend nemusí být a neměl by být ošklivý a špatně napsaný špagetový kód, právě naopak. Přestože backend uživatel nevidí, měl by fungovat parádně. Podívejme se nyní na to z pohledu reálné aplikace.
Reálná aplikace
Uvažuji nad webovou aplikací, která bude napojena na databázi. Jako první potřebuji znát, co se má v aplikaci dít, co má aplikace dělat, jaké jsou podmínky, co se má kdy zobrazovat a podobně.
Pro tento úkol jsou vyhrazeni specialisté jako analytik, který analyzuje aplikaci z pohledu používání a takzvané business logiky. Tedy například bankovní aplikace má jinou business logiku a podobně aplikace pro správu uživatelů má jinou logiku. Potom nastoupí architekt, který řekne, v čem se bude programovat frontend, v čem back end a vše navrhne technicky.
Následně přichází na scénu frontend programátor a backend programátor. Nebo stále více populární fullstack programátor.
Role front end developera
Frontend developer má za úkol připravit obrazovky – UI – user interface podle požadavků. Například potřebuje zobrazit všechny transakce na bankovním účtu. Připraví si obrazovku. Použije HTML + CSS na vzhled stránky plus JavaScript na funkcionalitu. Použije nejčastěji jeden z populárních frameworků – podle zadání architekta – Angular, Vue, React. Kromě toho by frontend vývojáři měli ovládat frameworky jako Bootstrap, Foundation a další, které zajišťují skvěle vypadající obsah bez ohledu na zařízení, na kterém si daný obsah prohlížíte. Pokud potřebuje data, tak podá požadavek na backend programátora nebo analytik připraví úlohu pro back end programátora. Frontendista následně poté zobrazí data, která mu poskytl backend.
Frontend developer je zodpovědný za interiérový design domu, který postavil backend developer.
Role back end developera
Back end developer připraví databázi, připraví si kód pro získání dat z databáze a napojení dat do programu. Následně připraví službu na poskytnutí dat do okolního světa. Ne vše, co je v databázi chceme zobrazovat na obrazovce, jen to co je třeba. Služba bývá hlavně REST rozhraní (REST api), které vypadá jako klasická url adresa na webovou stránku, ale místo web stránky vrátí data v požadovaném tvaru. Například vrátí seznam bankovních transakcí daného uživatele ve tvaru JSON. Jako backendista bys měl znát jazyk SQL pro komunikaci s databází. Potom záleží v jakém jazyce je backend napsán – Java, C#, Python, Ruby a podobne. Potom každý jazyk má frameworky, které pomáhají při práci.
Role full stack developera
Ideální kombinace je vědět jak front end, tak back end. Fullstack developer si připraví obrazovku a pokud potřebuje data, tak si je umí i sám připravit. Podle mého názoru je dobře vědět i frontu i backend, ale trpí tím hloubka znalostí problematiky. Dovednosti a znalosti fullstack developerů jsou potřebné ve všech fázích procesu webového vývoje, počínaje fází plánování projektu, správou databází, vytvářením uživatelských rozhraní až po strukturování údajů a řešení kritických potřeb. Fullstack vývojáři proto musí porozumět všem úrovním webových stránek a tomu, jak web funguje.
Na závěr lze říci, že učení se více webových jazyků a technologií je pravděpodobně nejlepší cesta. Je však dobré mít na paměti tento přístup: osvojte si nejpoužívanější a nejpopulárnější technologie/jazyky, protože čím větší podporu pro svůj web/produkt/službu máte, tím lépe.
Backend developer zná do hloubky problémy, které mohou vzniknout s databází, zná lépe všechny procesy na pozadí.
Frontend developer ovládá lépe javascriptový framework, ví jak udělat věci efektivněji. Fullstack developer nemusí čekat, až mu připraví data na backendu a umí si vše lépe manažovat.
Volám sa Jaroslav Beňo, predstavovať sa budem ako Jaro. Mám manželku. Máme zatiaľ dvoch synov. Som kresťan, ktorý študuje Bibliu. Kto chce vedieť viac, tak ma kľudne kontaktujte aj ohľadne tejto veci. Mám rád šport - aktívne a filmy.
Vyštudoval som aplikovanú informatiku, ktorá mi dala základy, ale ako každý, aj ja som sa musel učiť sám praktickým písaním kódu. Som fanúšik videotutoriálov a rád zdieľam svoje vedomosti. Nemyslím si, že som extra nadupaný borec programátor, ale to čo viem - šírim ďalej.
Verím, že ak sa budeme zdieľať porastieme vo vedomostiach rýchlejšie. Najviac ma poteší, keď ti budú moje videotutoriály užitočné.