Frontend, backend, a może fullstack?


IT, IT-DLA-ZIELONYCH / sobota, 17 sierpnia, 2019

Bardzo często wśród developerów możemy usłyszeć „wolę backend”, „dobrze czuję się na froncie”, „chciałbym zostać fullstackiem”. Czym jest owy „frontend”, „backend”? Zaraz wszystko stanie się proste!

Koncepcja istnienia frontendu i backendu jest ściśle związana z aplikacjami webowymi. Na początku zastanówmy się krótko, jak w dużym uproszczeniu działa każda aplikacja webowa:

Dane prezentowane przez aplikację zapisywane są na serwerze w bazie danych. W momencie wpisania w przeglądarkę adresu strony internetowej nasze lokalne urządzenie (np. laptop, smartfon czy tablet) wysyła do serwera (na backend) żądanie z prośbą o udostępnienie plików tej witryny. Żądanie to jest przez serwer przetwarzane (na rysunku dzieje się to w elemencie logika działania aplikacji), a następnie po odpytaniu bazy danych, uzyskiwane są potrzebne dane i przesyłane z powrotem. Odbiera je aplikacja działająca w naszej przeglądarce internetowej.

Aplikacja ta w dużej mierze jest odpowiedzialna za interakcję z nami, a więc z użytkownikiem, to właśnie ją „widzimy”. To do niej należy wyświetlanie i obsługa interfejsu użytkownika (ang. UI- User Interface). Czasami zdarza się, że w niewielkim stopniu aplikacja ta filtruje bądź zmienia postać danych, które otrzymała w odpowiedzi na swoje zapytanie, wszystko zależy od konkretnego przypadku. Z uwagi na fakt, że to właśnie ta aplikacja działa blisko użytkownika i odpowiada za UI, nazywamy ją często aplikacją kliencką/klientem tudzież właśnie frontendem.

Frontend

Frontend dotyczy całokształtu prezentowania treści na stronie, używanych czcionek, komponentów interfejsu, wspierania różnych przeglądarek, responsywności. Programiści frontendu ściśle współpracują z UI/UX designerami i grafikami. Wiele godzin spędzają na odpowiednim oprogramowaniu i sprawdzeniu, jak aplikacja będzie prezentować się
w różnych okolicznościach (m. in. również na różnych przeglądarkach- Chrome, Firefox, Opera, Safari..). Umiejętnościami, które w tym przypadku są konieczne jest znajomość języka znaczników html, CSS, a także bibliotek i frameworków opartych na języku Java Script.

Co ważne, mówiąc o frontendzie nie musimy ograniczać się tylko do aplikacji webowych. Aplikacja mobilna na Androida komunikująca się z serwerem, na którym przechowywane są dane, również będzie aplikacją frontendową. Podobnie wyświetla ona bezpośrednio interfejs użytkownika, jest aplikacją kliencką.

Backend

Backendem nazywamy aplikację działającą zazwyczaj na serwerze i odpowiedzialną za logikę biznesową (reguły funkcjonowania aplikacji), przechowywanie i przetwarzanie danych. Jej głównym zadaniem jest odpowiednie obsłużenie żądań aplikacji klienckich, dostarczenie im odpowiednich danych. Możemy powiedzieć, że jest to niejako wnętrze naszej aplikacji, wszystko, z czym użytkownik nie ma bezpośrednio kontaktu. Backend często określany jest mianem „po stronie serwera”. Na naszym rysunku backend znajduje się po prawej stronie. Backendowiec z krwi i kości będzie potrafił postawić i obsługiwać bazę danych, przygotować RESTowe endpointy, będzie znał się również na technologiach backedowych, o których już niedługo powstanie osobny wpis.

Fullstack

Powiedzieliśmy sobie już o roli frondendowca i backendowca, kim w takim razie jest fullstack? Deweloper fullstackowy to osoba posiadająca doświadczenie w „całym stosie technologicznym” (ang. full stack), a więc zarówno we frontendzie jak i w backendzie. Jak się pewnie domyślacie, znaleźć dobrego fullstack dewelopera nie jest prosto. O ile zarówno od frontend- jak i backend-dewelopera wymagana jest podstawowa znajomość „drugiej strony mocy”, o tyle bardzo rzadko biegłość w całości jest koniecznością.

Frontend, backend a może fullstack? Która rola wydaje Ci się najciekawsza? 😉

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.