Strona główna / blog / Co to jest back-end i za co odpowiada?
Co to jest back-end i za co odpowiada?

Poruszone tematy:

Aplikacja webowa lub strona internetowa na pierwszy rzut oka wydaje się interfejsem graficznym. Stoi za nim jednak ukryta warstwa zaplecza, bez której aplikacja nie mogłaby funkcjonować. Stanowi on rodzaj silnika samochodu, podczas gdy warstwa wizualna - front-end - to jego karoseria. Poniżej skupimy się na back-endzie oraz zadaniach programistów odpowiedzialnych za jego tworzenie.

Co to jest back-end?

Back-end oznacza zaplecze aplikacji webowej, czyli to, czego używając, nie widzimy, w przeciwieństwie do warstwy zewnętrznej, czyli front-endu. Back-end dotyczy wszystkich operacji, które dokonują się po stronie serwera. Tworzy strukturę i ogólną funkcjonalność aplikacji, jej operacje, bazy danych i API (Application Programming Interface).

Warstwa zaplecza jest odpowiedzialna za wszystkie dane wyjściowe, jakie zobaczy użytkownik, np. tekst, jaki pojawi się na ekranie. W przypadku elementów interaktywnych takich jak formularze czy kalkulatory, to właśnie w back-endzie programowane jest to, co powinno wyświetlić się użytkownikowi, który chce np. obliczyć wartość swojego BMI czy raty kredytu. Tak samo dotyczy to dowolnego elementu, który kliknie - reakcja na to zdarzenie (np. załadowanie się kolejnego widoku) zależy od współgrania front-endu z back-endem.

Dłonie ludzi pracujących na laptopie i tablecie

Co składa się na back-end?

Architektura zaplecza składa się z następujących komponentów:

  • Serwery
    Serwer to jednostka, która służy do wykonywania kompleksowych operacji zainicjowanych przed kod źródłowy aplikacji. Odpowiedzialny jest między innymi za pomoc w kompilowaniu interpretacji kodu źródłowego i wykonywania zaprogramowanych poleceń, przetwarzania danych i odpowiednie zwrócenie wartości wynikowych. Może przechowywać także statyczne pliki, które następnie wyświetlane są w docelowej aplikacji, jak i wykonywać wszelkie operacje w tle, niezwiązane stricte z tym, co wyświetla się w samej aplikacji (np. obliczanie danych pośrednich).
  • Logika
    Warstwa logiczna składa się z kodu źródłowego, który zawiera logikę biznesową aplikacji (m.in. obiekty, algorytmy, serwisy, pozwalającą aplikacji wykonywać różne działania i generować wyniki w zależności od przyjętych danych wejściowych. Wykonywana jest ona poprzez serwery, interpretując dane wejściowe i generując wyjściowe.
  • Framework
    Framework to narzędzie, którego programista używa do tworzenia struktury kodu, logiki oraz innych aspektów architektury back-endu. Narzędzia tego typu ułatwiają pisanie i edycję kodu, stanowiąc rodzaj fundamentu aplikacji, który narzuca pewne wytyczne i wzorce do pisanej architektury aplikacji. Frameworki zawierają także biblioteki i narzędzia dające szybki dostęp do funkcji, które w innym przypadku trzeba by było za każdym razem tworzyć samodzielnie.
  • Baza danych
    Baza danych to zbiór danych, w oparciu o które działa cała aplikacja. Dane te są składowane, pobierane i odpowiednio przetwarzane przez logikę biznesową aplikacji, dzięki czemu aplikacja bazuje na wcześniej przygotowanych zestawach informacji. Bazy danych mają wszechstronne użycie - zarówno pod kątem prostego przechowywania podstawowych informacji, jak i bardziej skomplikowane funkcje jak np. cachowanie powtarzalnych fragmentów aplikacji.
  • API
    API to interfejs, który udostępnia określone metody oraz akcje, za pomocą których front-end (i nie tylko bo także np. aplikacje mobilne) komunikuje się z backendem. Umożliwia on bezpieczną i szybką wymianę danych, dzięki czemu warstwa backendu odseparowana jest od warstwy frontendowej. Interfejsy API pozwalają także komunikować się z innymi serwerami i bazami danych w celu pobierania ich zasobów (np. agregatory lotów komunikują się z systemami, które zwracają ceny połączeń).
laptop z otwartymi aplikacjami na ciemnym tle

Kim jest back-end developer?

Back-end developer zajmuje się następującymi aspektami działania aplikacji lub strony internetowej:

  • Programowaniem struktury zaplecza
    Kod back-endu służy jako główny silnik działania aplikacji. Back-end developer odpowiedzialny jest za tworzenie tego silnika, czyli precyzując-logiki biznesowej, która wykonuje operacje spełniające założenia działania aplikacji. Programista musi charakteryzować się znajomością jednego z języków programowania jak PHP, Java, Python, Ruby czy C#. Dodatkowo powinien znać zaplecze technologiczne towarzyszące danemu językowi jak framework, popularne biblioteki czy określone wzorce projektowe. Ważna jest też umiejętność używania technologii z którymi back-end ściśle współpracuje (bazy danych, systemy cachujące itp.)
  • Zarządzaniem bazą danych
    Backend developer musi znać przynajmniej w minimalnym stopniu sposób operowania na bazach danych takich jak MySQL, PostgreSQL, Redis czy innych. Baza danych to jeden z kluczowych elementów działania bardziej złożonych aplikacji i im większa znajomości jej działania, tym lepiej działa dana aplikacja (wiąże się to np. ze znajomością pisania optymalnych zapytań do bazy, czy wykorzystywania odpowiednich mechanizmów buforujących).
  • Obsługą interfejsów API
    Programista back-endu musi wiedzieć które dane może bezpiecznie udostępnić na zewnątrz i odpowiednio stworzyć mechanizm udostępniania tych danych (tzw. API). Odpowiedzialny jest również za zapewnienie odpowiedniego odbioru i walidacji danych dostarczanych z zewnątrz, aby zapobiec niewłaściwemu działaniu aplikacji.
  • Kontrolowaniem wersji
    Systemy kontroli wersji oprogramowania (jak GIT czy już mniej popularny SVN) przechowują pełną historię modyfikacji kodu w repozytoriach, aby można było uzyskać do nich dostęp w każdej chwili. Dzięki temu możliwe jest przywrócenie oraz wzorowanie się na starszej wersji kodu, jeżeli nadejdzie taka potrzeba - zmienią się założenia działania aplikacji lub potrzebne będzie przeanalizowanie ewolucji kodu aplikacji.

    Systemy kontroli wersji umożliwiają także pracę większego zespołu programistów nad jednym wspólnym kodem, gdzie każdy programista może nanosić swoje zmiany, bez ryzyka nadpisania ich przez kogoś innego. Pozwalają rozwijać aplikację na wiele kierunków, za pomocą tzw. branchy, gdzie każdy branch to odgałęzienie głównego kodu, w którym można nanosić nowe funkcjonalności i na sam koniec połączyć z główną gałęzią, która zawiera produkcyjny kod.

To tylko kilka z wielu aspektów którymi zajmuje się backend developer. W WebMakers do wykonywania czynności związanych z back-endem nasi programiści korzystają także z takich technologii jak: RabbitMQ, Vagrant, Docker, Drone, Deployer, ApiPlatform, Unit Test, Elasticsearch.

Back-end z WebMakers

Prawidłowo funkcjonujące zaplecze jest niezbędnym elementem aplikacji internetowej lub strony internetowej. Back-end stoi za warstwą, którą widzimy, czyli front-endem i bez niego nie mogłaby działać. Programiści obu tych aspektów muszą ściśle ze sobą współpracować.

W WebMakers nad back-endem pracują doświadczeni specjaliści, którzy mają na swym koncie wiele udanych projektów, także o wysokim stopniu zaawansowania. Są przy tym biegli w wykorzystywaniu najnowocześniejszych technologii i chętnie podejmują się nauki nowo powstałych narzędzi. Dzięki ich pracy nasze aplikacje działają niezawodnie, opierając się na solidnej podstawie programistycznej i wieloletnim doświadczeniu.

back-endAPIserversczym jest back-endback-end developerco to jest back-end