
Rozpoczynając swoją przygodę z fontendem, pewnego dnia staniesz przed dylematem: “Od jakiego frameworka powinienem zacząć”. I poszukując odpowiedzi, zorientujesz się, że wybór nie jest jednoznaczny. Ile pytań, tyle opinii. Zwłaszcza że ostatnimi laty, jak grzyby po deszczu wyrastają nowe frameworki i biblioteki, próbujące zaoferować swoje usługi na rzecz frontendowców. Poniżej znajdziesz 7 powodów, dla których z perspektywy czasu mogę powiedzieć, dlaczego według mnie to właśnie Angular jest dobrym frameworkiem na start.
Dokumentacja
Pierwsze Twoje kroki, powinny zostać skierowane do dokumentacji. I z tym bywa różnie, jedne dokumentacje są lepsze, drugie nico gorsze, lakoniczne i trzeba posiłkować się wyszukiwarką lub kursami, aby zrozumieć o co chodzi. Dokumentacja Angulara, dostępna na stronie angular.io to naprawdę dobre miejsce od tego, aby rozpocząć swoją przygodę z tym frameworkiem.
Jest dobrze zorganizowana i stopniowo, za pomocą konkretnych przykładów, wprowadza w każdy istotny aspekt frameworka. Czasami skakanie między poszczególnymi tematami może jednak sprawić problem, dlatego, aby zrozumieć cały koncept, warto prześledzić tutorial Tour of Heroes, gdzie krok po kroku budujemy prostą aplikację.
Ponadto znajdziesz tutaj też zestaw najlepszych praktyk i opis bardziej zaawansowanych narzędzi, które przydadzą się w późniejszym etapie nauki.
Społeczność
AngularJs (pierwsza wersja frameworka) miał swoje wydanie w 2010 roku, a 6 lat później świat ujrzał następcę, znanego dzisiaj jako Angular (lub często Angular 2+). Kolejne wersje ukazują się cyklicznie, konsekwentnie rozwijając ideę z 2016 roku.
Pomimo bolesnych początków (brak możliwości migracji z AngularJs do Angulara 2) framework ten po dziś dzień zyskał wielu zwolenników i sympatyków, a z racji tego, że za rozwiązaniem stoi duża korporacja, również uznanie firm, stawiających na stabilne i skalowane rozwiązania.
Dlatego w sieci znajdziesz całą masę materiałów wszelakiej maści, podcastów, blogów, kursów, filmików instruktażowych itp.
Oficjalny serwer na Discordzie zrzesza ponad aktywnych 16 tys. członków w tym także twórców bibliotek, najczęściej używanych w tym frameworku. Warto tutaj zajrzeć, nie tylko, aby szybko uzyskać pomoc, ale głównie, aby zobaczyć, jak prężnie i ambitnie działa community.
CLI
Angular CLI to narzędzie, dzięki któremu za pomocą komend w terminalu szybko postawimy nową aplikację, dodamy komponent, moduł i wiele innych.
CLI, już od samego początku prowadzi użytkownika za rękę, dopytując o niezbędne szczegóły. Jest to szczególnie ważne zwłaszcza w początkowym etapie nauki, kiedy dopiero poznajemy wszystkie elementy frameworka i nie do końca wiemy co i jak. Dzięki CLI, jesteś w stanie postawić prototypową aplikację w ciągu kilkunastu sekund.
Typescript
Angular zbudowany jest na Typescript, języku zawierającemu bardzo duży zestaw elementów wykorzystujących programowanie zorientowane obiektowo (OOP). Od samego początku zaczniesz więc używać klas, modułów, dekoratorów, typów czy interfejsów, dzięki którym Twój kod stanie się dużo czystszy, bezpieczniejszy i łatwiejszy w utrzymaniu.
I co najważniejsze, przy tym wszystkim nie stracisz możliwości pisania w czystym JavaScript, ponieważ Typescrpt w całości implementuje najnowsze standardy języka.
Skalowalność
Angular, jak większość dzisiejszych frameworków stosuje podejście komponentowe. Pozwala więc dzielić widoki na małe, reużywalne części, które dzięki enkapsulacji, stają się niezależnymi klockami w naszej aplikacji.
Patrząc dalej, dla przykładu, serwisy pozwalają skomunikować się ze światem zewnętrznym lub z innymi komponentami. Są też inne elementy takie jak pipe, czy dyrektywy, które pozwalają zapanować nad widokiem. I jeszcze wiele innych, bardzo specyficznych narzędzi, a każdy z nich ma swoją jasno określoną odpowiedzialność.
Naturalnie, temat skalowalności jest dużo szerszy, ale to właśnie dzięki podziałowi aplikacji na te małe klocki o jasno określonej odpowiedzialności, jasno określona komunikacja i modularyzacja, to dobry wstęp do bezpiecznej i skalowalnej architektury.
Spójność
Z racji tego, że w Angular posiada wszystko, co potrzebne jest do stworzenia kompletnej aplikacji, a niemal wszystkie elementy można wygenerować za pomocą CLI, to bardzo łatwo jest utrzymać spójność między komponentami, modułami czy nawet oddzielnymi aplikacjami.
Widziałem wiele różnych projektów realizowanych przy użyciu różnych frameworków i bibliotek i tam, gdzie deweloperzy mają dużą swobodę w wyborze technik czy narzędzi, potrzebna jest naprawdę duża dyscyplina zespołu, jak i doświadczenie, aby utrzymać spójność. Bardzo często w takich projektach każdy ma swój pomysł na rozwiązanie określonego problemu, ulubione techniki czy przyzwyczajenia i z racji tego, że nie ma narzuconego standardu, każdy robi to “trochę po swojemu”.
Angular w dużym stopniu (ale nie całkowicie) rozwiązuje ten problem, narzucając strukturę i narzędzia, ale dzięki temu można dużo łatwiej zapanować nad kreatywnością zespołu. Poznając zatem Angulara, raczej bez większego trudu odnajdziesz się w każdym projekcie angularowym.
Wzorce projektowe
Angular jest pełen wzorców projektowych. Już od samego początku, dotykając komponentu, zobaczysz dekoratory w akcji, w komunikacji z backendem zetkniesz się z obserwatorem, a do podkręcenia widoku użyjesz dyrektywy! Nieświadomie używając poszczególnych elementów frameworka, zaczniesz wchłaniać najlepsze praktyki programowania, bo niemal każdy element frameworka ma swoje źródła właśnie we wzorcach projektowych.
I kiedy któregoś dnia, kiedy zaczniesz nieco bardziej przyglądać się tematowi wzorców, dużo łatwiej będzie Ci zrozumieć, jak one działają!
Podsumowanie
Kiedy już staniesz przed wyborem, od czego zacząć, warto popatrzeć na kilka aspektów wspomnianych powyżej. Są naturalnie inne ścieżki, na pewno niektóre z nich szybsze i łatwiejsze. Jednak na początku swojej drogi w programowaniu na frontendzie, wiele rzeczy będziesz robić na wyczucie, nie do końca będąc świadomym, dlaczego tak, a nie inaczej. Dodatkowo nie zawsze trafisz na mocny zespół, od którego mógłbyś się uczyć dobrych praktyk.
Angular wymusza pewne podejście, co sprawia, że projekt zazwyczaj ma solidne fundamenty i nie przypomina cyrku, w którym każdy z deweloperów kręci swoją karuzelą. I co prawda, Angular nie ma niskiego progu wejścia i zawiera w swoim toolboxie wiele narzędzi, od tych prostych do tych bardziej złożonych, których zrozumienie przyjdzie z czasem, jednak ich nauka i umiejętne użycie, pozwoli w przyszłości łatwiej budować dobrej jakości projekty, także w innych frameworkach.