Frontend, backend vagy full stack?

2022-08-18
Melyik irányt válaszd, ha programozó akarsz lenni? Mutatjuk, melyik kifejezés pontosan mit takar és melyik kinek testhezálló leginkább.

Ha ezt a cikket olvasod, valószínűleg, sőt minden bizonnyal kacérkodsz a gondolattal, hogy programozóként helyezkedj el a munkaerőpiacon, esetleg vállalkozóként saját bizniszbe vágj. Azonban felmerül a kérdés, hogy „jó, de mégis milyen programozó legyek?”.
A frontend, backend, fullstack kifejezések hallatán sokan már az elején elbizonytalanodnak, mert csak ekkor realizálódik bennük igazán, hogy bizony még a szakmán belül is ezer és egy féle lehetőség van. Ha pedig nem a képességeinknek és a személyiségünknek megfelelőt választjuk, könnyen lehet az a téves következtetés a vége, hogy „a programozás nem is nekem való”, pedig egyáltalán nem biztos, hogy ez a helyzet. Öntsünk tiszta vizet a pohárba és tisztázzuk, melyik kifejezés pontosan mit takar és melyik kinek testhezálló leginkább.


Mi a különbség a frontend és a backend között?


Mindenekelőtt fontos kiemelni, hogy egyik sem jobb, mint a másik. Ahhoz, hogy egy szoftverből végül jó (és eladható) termék váljon, mindkettőre szükség van. Az alapvető különbség, hogy a backend fejlesztő a szerveroldali programozásért felelős, a frontend fejlesztő pedig a kliensoldali programozásért. Szerver, vagyis backend oldalon végezzük el általában azokat a műveleteket, amik ahhoz szükségesek, hogy az adott szoftver funkcionalitásában pontosan azt lássa el, amit kell. Kliens, vagyis frontend oldalon pedig azokat, amik a megjelenítésért, vagyis a felhasználói felületért felelősek. A kettő összehangolásából és a közöttük lévő kommunikációból pedig végül megszületik a szoftver, amit a végső felhasználó letölthet a telefonjára, megnyithat a böngészőjében, telepíthet a számítógépére, stb.


Hogyan működik a frontend és a backend közti kommunikáció a gyakorlatban?


A frontend és a backend közti kommunikáció megértéséhez vegyünk egy egyszerű, hétköznapi példát.


Képzeld el, hogy bankszámlát szeretnél nyitni egy adott banknál. Te, mint ügyfél (vagyis végső felhasználó) besétálsz a bankfiókba. Az első dolog, amit meglátsz, az ügyfélszolgálat (vagyis a frontend felület) lesz. Nagyon sokat nyom a latban, hogy kedvesen fogadnak-e, megkínálnak-e kávéval, barátságos-e az ügyintéző. Ha nem érzed magad komfortosan, valószínűleg kisétálsz a bankfiókból és nem fogsz számlát nyitni.

Ha viszont tetszik a környezet, elmondod az ügyintézőnek, mit szeretnél. Ezt nevezzük inputnak, amikor a felhasználó közli a rendszerrel, hogy mire kíváncsi. Ezután az ügyintéző (vagyis a frontend) hátra megy a pénzügyi osztályra (vagyis a backend oldalra) és átadja az információkat (vagyis az inputot), amit Te közöltél vele.

Ezen a ponton nagyon fontos, hogy az input pontosan kerüljön átadásra, különben az ügyintéző egy olyan információval fog hozzád visszamenni, ami megtévesztő, vagy nem a kérdésre válaszol. A frontend felelőssége, hogy a felhasználó képes legyen olyan módon és olyan mennyiségű inputot adni, amit a frontend utána megfelelően át tud adni a backendnek.

A színfalak mögött (vagyis a szerver oldalon) lezajlik egy belső, osztályok (szerverek) közötti kommunikáció, amit aztán átadnak a frontendes munkatársnak, aki visszamegy hozzád és barátságosan közli veled a kért információt.


Ugyanez történik akkor is, amikor egy applikációról van szó. Nézzünk egy egyszerű időjárásfigyelő szoftvert.


Először letöltöd, majd eldöntöd, hogy ránézésre tetszik-e, igényes-e, felhasználóbarát-e. Ez lesz a frontend dolga. Ha igen, akkor megadod a keresőmezőben az inputot, például, hogy "Budapest". Ezután az időjárásfigyelőd egy geoszerverről lekéri Budapest koordinátáit, egy másik szerverről pedig lekéri, hogy hány fok van ott jelenleg. A backend dolga az, hogy ez az adatlekérés minél pontosabb, gyorsabb, hatékonyabb legyen és minél kevesebb műveletet igényeljen. Ha ez megtörtént, akkor ismét a frontend következik és megjeleníti számodra, hogy 30 fok van, ráadásul, hogy teljes legyen a felhasználói élmény, egy napocskát is kirajzol a képernyődre.


Melyik milyen skill-eket igényel?


Alapvetően frontend és backend oldalon is elengedhetetlen a logikus, analitikus és megoldásközpontú gondolkodás. Félreértés ne essék, nem kell matekzseninek lenni. Sőt egyáltalán nem is biztos, hogy egy jó matekosból jó programozó is válik, a kettő ilyen módon nem függ össze.


Kiből lehet jó backend-es?

Amit érdemes szem előtt tartani, hogy jó backend fejlesztő általában azokból lesz, akik könnyen átlátják az adatbázisokat, képesek a dolgokat hatékonysági szempontból vizsgálni és csak másodlagos szempont nekik, hogy amit lekódolnak, az végül „szép” is legyen. Számukra nem releváns, hogy valami felhasználóbarát legyen, az viszont igen, hogy a parancsok gyorsan, kevés üzemciklussal, pontosan fussanak le. Tipikus backend programozási nyelvek például a Java, C/C++, a Python, a PHP, valamint az SQL, mint a legelterjedtebb adatbázis hozzáférési nyelv.


Kiből lehet jó frontend-es?

Frontend fejlesztőnek inkább azok mennek, akik szeretik a munkájuk eredményét vizualizálni, képesek olyan szemszögből is vizsgálni a dolgokat, hogy a végső felhasználó számára, aki nem érti a kódolt nyelvet, hogyan lesz mégis érthető valami.
(A legelterjedtebb frontend leíró és programozási nyelvek a HTML, CSS, Javascript - ami nem ugyanaz, mint a Java -, de egy jó frontend fejlesztőnek nem árt megismerkednie néhány elterjedt keretrendszerrel sem, ilyen például az Angular, vagy a React.) Fontos emellett kiemelni, hogy a frontend fejlesztés NEM egyenlő a webdizájnerkedéssel. Bár tény, hogy a kettő szorosan összefügg egymással, általában külön szakma keretében foglalkoznak azzal, hogy egy weboldal hogy nézzen ki, milyen színeket használjon (ez a UX és UI dizájn) és azzal, hogy amit a dizájner megálmodott az le legyen kódolva (ez a frontend).


Mi az a full stack?

Ezek alapján kitalálható, hogy a full stack fejlesztők amolyan "Jolly Joker"-félék, akiket mindkét oldalon be lehet vetni, ha a helyzet úgy kívánja. Számukra a legnagyobb előny, hogy ha például kislétszámú csapatban dolgoznak, akkor képesek egy rendszert egyedül is felépíteni, emiatt nagyon keresetté válnak a munkaerőpiacon. Hátrány viszont, hogy a kezdő full stack fejlesztőknek valószínűleg hosszabb időt fog majd igénybe venni az, hogy igazán jó szakember váljon belőlük.

Azt viszont fontos szem előtt tartani, hogy bármelyik mellett is teszed le a voksod, az alapvető működési elveket mindkét oldalon szükséges ismerned, ahhoz, hogy érvényesülni tudj a szakmában.


Informatikai képzési kínálatunkban megtalálható mind a frontend fejlesztő, mind pedig a backend fejlesztő képzés. A részletekről és következő indulási időpontjainkról a megfelelő linkre kattintva tájékozódhatsz. Szeretettel várunk a számodra inkább testhezálló tanfolyamon.