/ 18.11.2024
Spis treści
Dlaczego ważna jest ostrożność w zakresie wyboru technologii?
Zacytuję doświadczonego programistę, dzielącego się swoimi spostrzeżeniami przy wyborze technologii do projektu:„Na początku interesuje cię wszystko, co najnowsze i błyszczące. Niestety praktyka pokazuje, że łatwo się na czymś pośliznąć, a najlepiej wychodzi to, co sprawdzone przez tysiące firm i korporacji. Dlatego w dużych projektach stosuję bardziej ugruntowane technologie, takie jak React lub Angular niż frameworki, które pojawiły się ‘wczoraj’” (Nikolaj Osadcij, Full-Stack Developer).W tym artykule skupimy się na porównaniu Angular i React w kontekście projektów dla dużych firm, aby zastanowić się, w jakiej sytuacji wykorzystać każdy z nich. Jaki mają wpływ na wydajność pracy i wrażenia użytkowników końcowych?
Czym jest React?
React to biblioteka JavaScript opracowana przez Facebooka i skoncentrowana na budowaniu interfejsów użytkownika. Opiera się ona na możliwości ponownego wykorzystania komponentów. Najczęściej React wybiera się do budowy aplikacji internetowych, w których wyświetlane dane są regularnie zmieniane. React ma dużą i aktywną społeczność, co zaowocowało rozwojem różnych bibliotek, wokół Reacta, takich jak React Router (routing), czy Redux (zarządzanie stanem). Z kolei kompletny framework Next.js, który współpracuje z React.js w ramach budowania interfejsów zapewnia dodatkową strukturę i pomaga w optymalizacji aplikacji.Kluczowe funkcje Reacta:
- Wirtualny DOM: Oznacza, że zmiany w interfejsie użytkownika są najpierw wprowadzane wirtualnie, a React skutecznie aktualizuje tylko niezbędne części rzeczywistego DOM, dzięki temu, operacje na drzewie DOM są bardziej wydajne i skutkują szybszym renderowaniem strony
- JSX: React wykorzystuje JavaScript XML, który upraszcza proces definiowania struktury i układu komponentów oraz ich renderowania.
- Architektura oparta na komponentach: React stosuje modułowość i używanie komponentów w celu budowania interfejsów użytkownika. Każdy komponent z osobna zarządza własnym stanem i może przekazywać dane do komponentów podrzędnych za pośrednictwem właściwości (props).
- Jednokierunkowy przepływ danych: Dane przepływają od komponentów nadrzędnych do podrzędnych, co pomaga w utrzymaniu przewidywalnego zarządzania stanem.
- React Hooks: Hooki, które zostały dodane do Reacta w wersji 16.8 umożliwiają komponentom funkcyjnym dostęp do stanu i innych właściwości biblioteki.
Czy React sprawdzi się w projektach o dużej skali?
React może być używany w projektach korporacyjnych, ponieważ pozwala tworzyć skalowalne i wysoce wydajne aplikacje. Poza tym jest łatwy do nauczenia, ma dużą i aktywną społeczność programistów i jest wspierany przez jedne z największych firm z branży technologicznej. Jednak może niekiedy komplikować pracę zespołową, ponieważ inni programiści muszą najpierw nauczyć się istniejących zależności. W React trzeba samemu ułożyć układankę komponentów, wiedzieć jakie dodatkowe biblioteki ze sobą współpracują, żeby aplikacja działała bez problemu. Z pewnością można go wykorzystać do zbudowania całej front-endowej części aplikacji lub strony, ale sukces projektu będzie zależny od znajomości i doświadczenia programisty z technologią. Większą skalowalność i lepszą jakość kodu można uzyskać instalując bibliotekę Typescripta w React. Choć nauczenie się go wymaga wysiłku, długoterminowe korzyści, jakie zapewnia on pod względem jakości kodu, produktywności programistów i współpracy, przewyższają trudności. Przejdźmy teraz do porównania go z inną popularną frontendową technologią — Angularem.Czym jest Angular?
Angular jest to kompleksowy framework do budowy aplikacji internetowych, opracowany i utrzymywany głównie przez Google. Umożliwia on programistom tworzenie dynamicznych, jednostronicowych aplikacji (SPA) i zapewnia kompleksowy zestaw narzędzi i funkcji upraszczających proces programowania. Angular działa w architekturze Model-View -Controler (MVC), w którym komponenty są odpowiedzialne za kontrolowanie widoków i obsługę przepływu danych między modelem a widokiem. Jeśli w między komponentami występują jakieś konflikty, to w Angular można szybko je naprawić. Z kolei w React nie jest łatwo szybko znaleźć rozwiązanie, ponieważ między komponentami może istnieć wiele kombinacji. Do innych cech Angulara należy spójność i łatwość utrzymania w dużych projektach. 80% projektów, w których stosuje się Angular to aplikacje do obsługi administracji, niewidoczne dla klientów takie jak np. Systemy CRM, ERP. W odróżnieniu od React’a, gdzie każdy może napisać architekturę według swojego uznania, w Angular, kiedy nowa osoba wejdzie do projektu, wie od razu, czego może się tu spodziewać, zna wszystkie standardy. Każdy indywidualny projekt ma podobną strukturę i w dużej mierze wykorzystuje te same komponenty. Oznacza to, że każdy projekt jest do siebie podobny, jeśli chodzi o strukturę, znaczniki i kod. Ogólnie rzecz biorąc, przewidywalność działań ułatwia pracę zespołową.Angular oferuje potężny zestaw funkcji, jego kluczowe cechy obejmują:
- TypeScript: Angular jest napisany w języku TypeScript, który umożliwia opcjonalne statyczne typowanie oraz programowanie obiektowe oparte na klasach, dzięki czemu jest bardziej skalowalny i łatwiejszy w utrzymaniu.
- Dyrektywy: Angular zapewnia bogaty zestaw dyrektyw, które pozwalają rozszerzyć HTML o niestandardowe atrybuty i zachowania. Służą one do manipulowania DOM, dodawania detektorów zdarzeń, kontrolowania, czy renderowania.
- Szablony: Angular używa szablonów HTML do definiowania struktury i układu widoków aplikacji.
- Dependancy Injection: Angular ma wbudowany system zarządzania zależnościami między różnymi komponentami. Oznacza to, że wcześniej używane wiązania pomiędzy komponentami zostały usunięte, a zamiast nich wprowadzono “zarządcę”, który zajmuje się tworzeniem obiektów zależności na życzenie klasy, która tych ich potrzebuje.
- Routing: Moduł routingu umożliwia określenie ścieżek nawigacji i obsługę routingu w aplikacji oraz po stronie klienta
- Rozszerzenia RxJS: Angular wykorzystuje rozszerzenie reaktywne potężną bibliotekę do obsługi kodu asynchronicznego lub opartego na wywołaniach zwrotnych, takich jak obsługa żądań HTTP i zarządzanie strumieniami danych.
Czy Angular sprawdzi się w złożonych projektach?
Angular jest samodzielnym frameworkiem do programowania front-end i może być używany do tworzenia forów, portali korporacyjnych, platform giełdowych, list nieruchomości itp. Największe firmy korzystające z Angular to:- GitHub (forum)
- Informacje Google
- Forbes
- Portal deweloperski Deutsche Banku