Backend: logika aplikácie a databázy (Java, Python, C#, Node.js)
Fullstack: kombinácia frontend a backend vývoja
Pri vývoji webovej aplikácie frontend komunikuje s backendom prostredníctvom API, ktoré poskytuje dáta potrebné na zobrazenie obsahu používateľovi.
Frontend vs Backend vs Fullstack: aký je medzi nimi rozdiel
Pri vývoji moderných webových aplikácií sa vývoj najčastejšie delí na dve hlavné časti:
frontend
backend
Frontend je všetko, čo používateľ vidí a s čím priamo interaguje. Backend je naopak časť aplikácie, ktorá beží na pozadí - spracováva dáta, komunikuje s databázou a zabezpečuje fungovanie aplikácie.
Okrem týchto dvoch typov vývojárov existuje aj fullstack developer, ktorý ovláda frontend aj backend.
Po internete kolujú desiatky memes, v ktorých sa tieto rozdiely medzi frontendom a backendom zobrazujú. Pozri si zopár z nich:
Rozdiel medzi frontendom a backendom
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.
Záver
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ť.
Ak sa chceš stať programátorom, najlepšou cestou je začať s jednou oblasťou a postupne rozširovať svoje znalosti o ďalšie technológie.
Často kladené otázky - FAQ: Frontend vs Backend vs Fullstack
Aký je rozdiel medzi frontend a backend developerom?
Frontend developer vytvára používateľské rozhranie aplikácie, zatiaľ čo backend developer pracuje s logikou aplikácie, databázami a spracovaním dát.
Čo robí fullstack developer?
Fullstack developer ovláda frontend aj backend a dokáže pracovať na celej aplikácii – od používateľského rozhrania až po databázu.
Je lepšie byť frontend alebo backend developer?
Záleží na tvojich preferenciách. Frontend je viac zameraný na vizuálnu stránku aplikácie, backend na logiku a spracovanie dát.
Aké technológie používa frontend developer?
Frontend developeri najčastejšie používajú HTML, CSS, JavaScript a frameworky ako React, Angular alebo Vue.
Aké technológie používa backend developer?
Backend developeri pracujú s jazykmi ako Java, Python, C#, Node.js a používajú databázy a SQL.
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é.