Wróć do strony głównej
NestJS

NestJS – Backend w stylu Angular

Angular 

Zakładam że większość osób która natrafi na ten artykuł zna Angulara. Ba! Pewnie nawet go lubi i używa.
Za co lubimy Angulara?

Lubimy go za to że dostajemy wiele rozwiązań wysokiej jakości out of the box. Dostajemy Dependency Injection, narzędzia do testów, CLI i wiele innych.
Poza tym Angular łączy najlepsze praktyki. Integruje je aby rozwiązywać wyzwania programistyczne. Jest zbudowany na kilku dobrze znanych wzorcach projektowych, które  dobrze zastosowane do naszych aplikacji upraszczają proces tworzenia skalowalnych i rozbudowanych systemów.
Ale co najważniejsze, Angular daje odpowiednią abstrakcję. Odpowiednia abstrakcja pomaga nam organizować nasz kod i dzielić funkcjonalności na logiczne jednostki.

Bardzo duża część z tych abstrakcji nie przynależy tylko do tworzenia części frontendowej. Pasuje również do tworzenia aplikacji backendowych.

NestJS

Nest, zarówno jak Angular jest platformą. W odróżnieniu od Angulara jest skierowany na tworzenie aplikacji serwerowych. Nest jest bardzo mocno inspirowany Angularem. Dzięki temu znając i korzystając z obu technologii możemy czerpać z wielu korzyści.
Po pierwsze – możemy reużywać naszą wiedzę. Nest bazuje na niemal tym samym zestawie zasad co Angular, więc nie musisz uczyć się wszystkiego od nowa. Modularność, wstrzykiwanie zależności, segregacja odpowiedzialności, dekoratory, TypeScript jako język. Wszystko to występuje również w Nest.

Po drugie – reużywalność doświadczenia. Nest ma praktycznie identyczne API w wielu miejscach. Nie wymaga uczenia się nowego API, nowych słów kluczowych, nowego syntaxu, nowego języka.

Na koniec – pomijając doświadczenie dewelopera, bardzo ważnym punktem jest reużywalność kodu. Możemy reużywać DTOsy, Interfejsy, a nawet serwisy, w tym bazy pod np. interceptory i guardy.

Symbiozę pomiędzy Angularem i NestJS zauważyli (nie licząc nas) także koledzy z Nrwl, dlatego aplikacja fullstackowa Nest + Angular jest dostępna jako jedna z podstawowych opcji przy generowaniu projektu monorepo przy użyciu Nx.

A co mówi na ten temat sam twórca Nesta? Sprawdźmy!

Historia

Koncept brzmi zachęcająco, ale nadal nie jesteś przekonany? Zastanawiasz się czy NestJS jest też wystarczająco dojrzały aby porównywać go do Angulara?

Co więc tak naprawdę wiemy o NestJS?

Prace nad Nestem rozpoczęły się w listopadzie 2016 roku. Pierwszy oficjalny release NestJS został wydany w maju 2017 roku, czyli rok po premierze Angular 2.

Niedawno doczekaliśmy się już 8 wersji, podczas gdy najnowszą wersją Angulara jest wersja 12.

Twórcą NestJS jest nasz rodak, Kamil Myśliwiec. Kamil ma tytuł Google Developer Expert oraz jest współtwórcą organizacji Trilon.

Jest on nadal odpowiedzialny za rozwój głównych modułów. Pomaga mu w tym rzesza kontrybutorów, a osoby, które wykazały się ponadprzeciętnym zaangażowaniem tworzą tzw. “Core Team”.

Nest, podobnie jak Angular jest podzielony na wiele osobnych bibliotek. Podstawowymi są analogicznie @nestjs/core i @nestjs/common. Jednak poza tym platforma wspiera nas na wielu różnych frontach, dlatego otrzymujemy także biblioteki m. in. do graphql, mikroserwisów, Swaggera, konfiguracji, CQRSa, a nawet do SSR w Angularze.

 

Popularność

Nest powstał w 2017 roku. W roku 2018 miał 300% wzrost ilości gwiazdek na Githubie. 

W roku 2019 nie pojawił się jeszcze w na predefiniowanej liście backendowych frameworków od stateofjs, jednak wśród wpisywanych ręcznie zdeklasował konkurencję.

Dlatego w statystykach za rok 2020 mamy już znacznie więcej statystyk, np. że 87% użytkowników jest zadowolonych z NestJS.

 

 

 

 

 

 

 

 

 

 

 



Co istotne to wcale nie jest szczyt zainteresowania tym frameworkiem, wręcz przeciwnie, ono cały czas szybko rośnie.Ten framework jest popularny w kasyna online ze względu na jego elastyczność i szybkość.

W interesujący sposób możecie zobaczyć wzrost popularności Nesta oglądając materiały przygotowane przez statisticsanddata.org


Dodatkowo do wykorzystywania NestJS na produkcji przyznaje się spore grono firm, takich jak Adidas, Decathlon i wiele innych które można śledzić na oficjalnej stronie z dokumentacją i w specjalnym issue na Githubie.

Podsumowanie

NestJS jest frameworkiem który bardzo mocno stawia na dobrą architekturę i wiele swoich konceptów zaczerpnął z Angulara. W związku z tym jest to prawdopodobnie najszybszy sposób aby osoba znająca Angulara mogła zacząć pisać swój własny backend. Nest ma już spore grono fanów i firm które z niego korzystają, a mimo to, jego popularność cały czas szybko rośnie. Sądzę że jest to najlepsza propozycja, którą można zaproponować deweloperom Angulara, którzy chcą tworzyć także swój własny backend.

O autorze

Maciej Sikorski

Maciej najwięcej czasu spędza projektując aplikacje w Angular i w Node.js, ale poza tym tworzy i wspiera biblioteki oraz inne narzędzia, które wykorzystuje w codziennej pracy. Jest bardzo zaangażowany w rozwój społeczności i technologii związanej z frameworkiem NestJS. Maciek dodatkowo prowadzi bloga anglojęzycznego na medium o tematyce NestJS i Angular.

Chcesz razem z nami tworzyć treści na bloga? Dołącz do nas i twórz wartościowe treści dla sympatyków Angulara z Angular.love!

Jeden komentarz

  1. Pingback: Wywiad z Kamilem Myśliwcem cz. 1 - Angular.love

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *