Najlepsze frameworki frontendowe
Marek Suśniak | Front-End | 05.01.2022
Narzędziownik programisty frontend to nie tylko języki programowania takie jak JavaScript, HTML, TypeScript czy CSS. Każdy programista, który tworzy „na froncie”, powinien zadbać o stack technologiczny, którego istotną część stanowią biblioteki i frameworki. W artykule skupię się na tych drugich… chociaż nie tylko. Omówię 3 narzędzia z mojej subiektywnej listy i spróbuję odpowiedzieć na pytanie, które wciąż wzbudza wiele emocji: który framework frontendowy jest najlepszy?
Czym są frameworki?
Framework to nic innego jak szkielet aplikacji wraz z pewnymi schematami zachowań, które pozwalają na ich budowę. Głównym celem każdego frameworka jest poprawa efektywności, zapewnienie swoistego rodzaju niezawodności oraz utrzymanie jakości kodu w pewnych narzuconych ryzach. Oczywiście oprócz wymienionych wyżej zalet istnieją też pewne niedogodności, takie jak na przykład złożoność kodu. Przed przystąpieniem do pracy musimy po prostu nauczyć się reguł, które panują w danym środowisku. Często wyzwaniem może być wydajność, ale jest to kwestia doboru odpowiednich narzędzi do rozwiązania, które budujemy.
Sprawdź nasze aktualne oferty pracy dla Front-End Developerów:
Angular
Angular to framework stworzony przez firmę Google. W praktyce jest to kolejna gałąź frameworka AngularJS, opartego na języku JavaScript. Jednak nie należy spodziewać się tutaj uspójnionych koncepcji czy kontynuacji rozwiązań. Językiem, w którym piszemy w Angularze, jest TypeScript. Framework ten wprowadza pełną gamę funkcjonalności, które powinien posiadać każdy szkielet aplikacji. Programiści cenią Angulara przede wszystkim za takie funkcjonalności jak narzucona architektura aplikacji, routing, rozwiązanie wspierające pisanie komponentów, modułowość czy zastosowanie wzorców projektowych.
Istnieją również problemy, które często są zgłaszane przez użytkowników, między innymi: wysoki próg wejścia – zanim zacznie się pisać kod, trzeba przyswoić sporo wiedzy. Zatem wyzwaniem bez wątpienia jest duża złożoność frameworka oraz paradoksalnie związana z narzuconą architekturą mała elastyczność tworzonych aplikacji.
Vue.js
Jest to framework typu open source, zaprojektowany przez szeroką rzeszę specjalistów. Dane autorów możemy znaleźć na stronie: Vue.js proponuje bardzo podobne funkcjonalności co Angular, a jednocześnie można odnieść wrażenie, że jest znacznie prostszym frameworkiem niż jego kuzyn od Google. Próg wejścia jest zdecydowanie niższy, a często możemy napisać prostą aplikację po kilku minutach nauki, znając podstawy HTML, CSS i JavaScript. Z drugiej strony jednak powoduje to, że kod może być zdecydowanie gorszej jakości. Kolejną rzeczą, która w Vue.js, jak i Angularze nie jest doskonałym rozwiązaniem, jest rozbudowanie HTML o dyrektywy, które pozwalają nam programować na poziomie szablonu. W mojej opinii znacznie obniża to czytelność kodu.
React
Zaraz, zaraz – czy należy o nim mówić jak o frameworku? Zdecydowanie nie! Pewnie zastanawiacie się, dlaczego w takim razie w ogóle React znalazł się na tej liście? Przede wszystkim dlatego, że jest to biblioteka, która ma ogromną część funkcjonalności frameworka. Wzbogacona o konkretne biblioteki, powoduje, że ekosystem aplikacji reactowej staje się w pełni działającym frameworkiem. Takie rozwiązanie cechuje się tym, że możemy w swobodny sposób zarządzać kształtem naszej aplikacji, nie pomijając dobrych praktyk, które narzucają te narzędzia. Użycie JSX jako języka szablonów jest dużo bardziej czytelne niż typowy kod HTML. Ponadto w React możemy wszystko uznać za komponenty, co powoduje, że nie tworzymy dodatkowych struktur z większą złożonością. W tym ujęciu okazuje się, że moduły nie są potrzebne, a wprowadzają jedynie dodatkową warstwę deklaracji.
Podsumowując… Który framework jest najlepszy?
Z użyciem Angulara można często spotkać się w projektach, w których wymagany jest duży poziom zaufania do narzędzia oraz istnieje konkretna specyfikacja, jak np. w projektach bankowych. W mojej ocenie Vue.js jest najmniej trafnym wyborem spośród wymienionych narzędzi, ponieważ nie wprowadza żadnej rewolucyjności, a sam w sobie miesza mnóstwo warstw w jednym miejscu.
Istnieje mnóstwo rodzajów frameworków frontendowych. Wymienione wyżej są najczęściej używane w ujęciu komercyjnym. W mojej opinii najbardziej przyjaznym oraz najszybszym jest React. Pozwala on na szybkie pisanie kodu bez dodatkowych konfiguracji.
Pamiętajcie jednak, że najważniejsze w budowaniu aplikacji, a tym samym przy wyborze frameworków, jest określenie tego, czego potrzebujemy. Opinie na temat frameworków są subiektywne i często zależne od poziomu wiedzy o nich. Jedno moim zdaniem jest pewne: nie istnieje coś takiego jak „najlepszy framework”, ale na pewno można wskazać „najlepszy framework pod kątem konkretnego rozwiązania”. Który? Niech zdecyduje o tym zespół developerów, którzy będą pisali aplikację.
Czym jest front-end?
Zacznijmy od podstawy podstaw, czyli rozróżnienia front-endu od back-endu :) Chyba najprościej powiedzieć, że front-end to wszystko, co widzi użytkownik i z czego korzysta przeglądarka, podczas gdy back-end to warstwa serwerowa aplikacji (a więc zapis, obróbka danych, większość logiki biznesowej). I jeśli chodzi o konkretne przykłady takich warstw, to można śmiało zauważyć tendencje do ich rozdzielania od siebie. Patrząc nawet z perspektywy technologii javowych, jeszcze kilka lat temu aplikacja webowa “all-in‑1” z użyciem JSP czy JSF jako warsty widoku, była często wybieranym rozwiazaniem, tak teraz, o wiele więcej aplikacji jest tak naprawdę, nie jedną, a dwoma (kilkoma) różnymi aplikacjami, gdzie front-end stanowi odrębny projekt/odrębną aplikację. Taki projekt komunikuje się z back-endem za pomocą RESTowego API (i w taki sposób będziemy właśnie implementować nasze rozwiązanie). Front-end to nie tylko “wyświetlanie wyników” z back-endu, ale też odpowiednie projektowanie interfejsu i doświadczeń użytkownika (a więc UI/UX), a także biznesowe wymagania jak np. walidacje, filtrowanie, wyszukiwanie (część z tych zachowań będzie obsługiwana (lub dodatkowo obsługiwana) w warstwie front-endowej naszej aplikacji. W zależności od firmy, czy projektu obowiązki programisty front-endowego będą różne, albo zamiast sztywnego podziału na back-end czy front-end, będziesz po prostu zatrudniony na stanowisku full-stack developer (można dostrzec, że obecnie przybywa takich właśnie stanowisk).
Pozwolę sobie tutaj na małe wtrącenie do początkujących widzących to ostatnie zdanie — jeśli dopiero zaczynacie naukę programowania, zdecydowanie radzimy Wam skupienie się na jednej z tych dwóch wartstw. To znacznie ułatwi Wam naukę, przyśpieszy proces do znalezienia pierwszej pracy, a potem nauczenie się “tego drugiego” z doświadczeniem np. w backendzie, powinno być znacznie łatwiejsze. Dlatego, w naszym podstawowym kursie javy zobaczycie, że warstwa wizualna jest opracowana za pomocą JSP — głownie po to, by “była możliwa”, a z drugiej strony nie utrudniała (nie dokladała za dużo nowych informacji). Na start, sam back-end, czy sam front-end jest naprawdę ok.
Wierzymy, że programista Front-end ma świetlaną przyszłość i że jest poszukiwany na rynku pracy z jakiegoś konkretnego powodu. Wyjaśniamy kilka alternatywnych faktów wokół tej specjalizacji i wyjaśniamy, dlaczego naszym zdaniem, warto nauczyć się programowania front-end.
Programiści front-end to ci, którzy jako pierwsi otrzymują pochwałę od firmy, jeśli aplikacja świetnie wygląda, działa i ładuje się od razu. Ostatecznie przedstawiając gotową aplikację przed użytkownikami, często to oni są w centrum uwagi, co już sprawia, że ta rola jest naprawdę atrakcyjna. Wraz z rozwojem branży internetowej, w ciągu ostatnich pięciu lat programowanie frontendowe stało się bardzo popularne, z dużą ilością ogłoszeń o pracę i naprawdę niezłymi pensjami.
Jednak nie wszyscy są z tego powodu równie zadowoleni. Słyszałeś kiedyś, jak inni programiści mówili, że programowanie front-end musi być tak łatwe, że chodzi tylko o przeciąganie niektórych elementów interfejsu użytkownika? Kilka przycisków tutaj, trochę wyskakujących okienek i animacji tam, a potem po prostu zastosuj całość na telefonie komórkowym, aby zakończyć. Cóż, jeśli to prawda, a profesjonaliści front-end mają tak łatwą pracę, to dlaczego jest tak duże ich zapotrzebowanie na rynku? Brzmi przynajmniej podejrzanie, prawda?
Rozwój front-endu to jeden z tych obszarów w IT, wokół którego istnieją pewne mity. Wymienimy niektóre z nich, aby spróbować wyjaśnić, dlaczego tak bardzo są potrzebni programiści front-end i jaka jest rzeczywistość. Uwaga spoiler: bywa wręcz przeciwnie niż mówią!
Przyjrzymy się również, jak możesz zostać programistą Front-end, jeśli już jesteś zainteresowany nauką tego ekscytującego zawodu.
Ale przede wszystkim zobaczmy, czym właściwie jest programowanie front-end!
Leave a Comment