Frontend vs Backend vs Fullstack a ako sa na to pozerám ja
Jaroslav Beňo
20.08.2021
5 minút čítania
Pri riešení a vývoji aplikácii si vieme vývoj rozdeliť na dve hlavné časti – front end a back end. Front end je v podstate to čo vidíš očami – to s čím sa používateľ ako prvým stretne (počas vysokej školy ma pucoval jeden profesor, že človek, čo kliká našu aplikáciu je používateľ a nie užívateľ). Následne back end je všetko vzadu, čo bežný používateľ nevidí, čo sa deje na pozadí, zväčša je to spracovanie dát, komunikácia s databázou a podobne.
Po internete kolujú desiatky memes, v ktorých sa tieto rozdiely medzi frontendom a backendom zobrazujú. Pozri si zopár z nich:
Dúfam, že máš teraz akú takú hrubú predstavu o tom, čo je frontend a čo backend. Ako sa nám snažia podsunúť tieto meme obrázky, backend nemusí byť a nemal by byť škaredý a zle napísaný špagetový kód, práve naopak. Napriek tomu, že backend používateľ nevidí, mal by fungovať parádne. Pozrime sa teraz na to z pohľadu reálnej aplikácie.
Reálna aplikácia
Uvažujem nad webovou aplikáciou, ktorá bude napojená na databázu. Ako prvé potrebujem poznať, čo sa má v aplikácii diať, čo má aplikácia robiť, aké sú podmienky, čo sa má kedy zobrazovať a tak podobne.
Na túto úlohu sú vyhradení špecialisti ako analytik, ktorý analyzuje aplikáciu z pohľadu používania a takzvanej business logiky. Teda napríklad banková aplikácia má inú business logiku a podobne aplikácia na správu používateľov má inú logiku. Potom nastúpi architekt, ktorý povie, v čom sa bude programovať frontend, v čom back end a všetko navrhne technicky.
Následne prichádza na scénu frontend programátor a backend programátor. Alebo čoraz viac populárny fullstack programátor.
Úloha front end developera
Frontend developer má za úlohu pripraviť obrazovky – UI – user interface podľa požiadaviek. Napríklad potrebuje zobraziť všetky transakcie na bankovom účte. Pripraví si obrazovku. Použije HTML + CSS na výzor stránky plus JavaScript na funkcionalitu. Použije najčastejšie jeden z populárnych frameworkov – podľa zadania architekta – Angular, Vue, React. Okrem toho by frontend vývojári mali ovládať frameworky ako Bootstrap, Foundation a ďalšie, ktoré zaistujú skvelo vyzerajúci obsah bez ohľadnu na zariadenie, na ktorom si daný obsah prezeráte. Ak potrebuje dáta, tak podá požiadavku na backend programátora alebo analytik pripraví úlohu pre back end programátora. Frontendista následne potom zobrazí dáta, ktoré mu poskytol backend.
Frontend developer je zodpovedný za interiérový dizajn domu, ktorý postavil backend developer.
Úloha back end developera
Back end developer pripraví databázu, pripraví si kód na získanie dát z databázy a napojenie dát do programu. Následne pripraví službu na poskytnutie dát do okolitého sveta. Nie všetko, čo je v databáze chceme zobrazovať na obrazovke, len to čo je treba. Služba býva hlavne REST rozhranie (REST api), ktoré vyzerá ako klasická url adresa na webovú stránku, no namiesto web stránky vráti dáta v požadovanom tvare. Napríklad vráti zoznam bankových transakcií daného používateľa v tvare JSON.
Ako backendista by si mal poznať jazyk SQL na komunikáciu s databázou. Potom záleží v akom jazyku je backend napísaný – Java, C#, Python, Ruby a podobne. Potom každý jazyk má frameworky, ktoré pomáhajú pri práci.
Úloha full stack developera
Ideálna kombinácia je vedieť aj front end aj back end. Fullstack developer si pripraví obrazovku a ak potrebuje dáta, tak si ich vie aj sám pripraviť. Podľa môjho názoru je dobre vedieť aj front aj backend, ale trpí tým hĺbka znalostí problematiky.
Zručnosti a znalosti fullstack developerov sú potrebné vo všetkých fázach procesu webového vývoja, počnúc fázou plánovania projektu, správou databáz, vytváraním používateľských rozhraní až po štruktúrovanie údajov a riešenie kritických potrieb. Fullstack vývojári preto musia porozumieť všetkým úrovniam webových stránok a tomu, ako web funguje.
Na záver možno povedať, že učenie sa viacerých webových jazykov a technológií je pravdepodobne najlepšia cesta. Je však dobré mať na pamäti tento prístup: osvojte si najpoužívanejšie a najpopulárnejšie technológie/jazyky, pretože čím väčšiu podporu pre svoj web/produkt/službu máte, tým lepšie.
Backend developer pozná do hĺbky problémy, ktoré môžu vzniknúť s databázou, pozná lepšie všetky procesy na pozadí.
Frontend developer ovláda lepšie javascriptový framework, vie ako spraviť veci efektívnejšie. Fullstack developer nemusí čakať, kým mu pripravia dáta na backende a vie si všetko lepšie manažovať.
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é.