Backend, Wywiady

NestJS — czym jest, jakie ma funkcje, wady i zalety?

Czym charakteryzuje się NestJS, jakie są jego główne funkcje? Jakie zalety ma ten framework, a jakie wady? Na te oraz więcej pytań dotyczących NestJS odpowiada Artiom Matusenco – ekspert Capgemini Engineering, który zrealizował niejeden projekt, bazując na tym narzędziu. Już 10 marca br. poprowadzi on webinar „Dlaczego warto tworzyć mikroserwisy z NestJS?”.

Express, Koa, Fastify – to najbardziej znane frameworki Node.JS. A Nest? Jak wygląda jego popularność na tle pozostałych? Czym się od nich różni?

Główna różnica polega na tym, że NestJS jest “opinionated” frameworkiem. To znaczy, że narzuca pewne zasady, strukturę katalogu, koncepcje, w jaki sposób muszą się nazywać pliki, w jaki sposób tworzyć aplikacje, jak je podzielić na fragmenty, etc… Wszystko to daje możliwość budowania aplikacji w tym samym stylu, za pomocą tych samych koncepcji, co umożliwia skalowanie i znacznie ułatwia tworzenie aplikacji.

A jeśli chodzi o popularność – NestJS zbiera gwiazdki na GitHub znacznie szybciej niż inne frameworki.

Wykres przedstawiający popularność frameworków Node.JS

W skrócie – czym jest NestJS? Za co odpowiada? Kiedy powstał?

NestJS jest frameworkiem do budowania aplikacji po stronie serwerowej na platformie Node.js. Napisany jest w języku TypeScript. Stworzył go Kamil Myśliwiec w 2017 roku. NestJS zapewnia nie tylko zestaw narzędzi potrzebny dla budowania projektów, ale także wprowadza pewne zasady, które gwarantują stosowanie najlepszych praktyk.

Jakie są główne funkcje NestJS?

NestJS pozwala budować aplikacje serwerowe z użycie mróżnych protokołów. Najczęściej są to serwery REST oparte na protokole HTTP. Oprócz tego zapewnia architekturę projektu, wprowadza najlepsze praktyki, zawiera mocny dependency injection mechanism, wykorzystuje abstrakcje, co czyni go bardzo elastycznym pod względem wyboru i podłączenia niezbędnych zależności, np. baz danych albo bibliotek.

Jakie możliwości daje NestJS? Co możemy zyskać, wykorzystując go w naszych projektach?

Aplikacje utworzone przez Nesta mają ten sam kształt – to znaczy, że programistom łatwiej będzie wejść do projektu albo przejść do drugiego. Nie trzeba tracić czasu na naukę projektu od strony technicznej, co pozwala, co pozwala skoncentrować się na logice biznesowej.

Oprócz tego NestJS pozwala budować różnego rodzaju aplikacje serwerowe różnego rodzaju, np. monolita z renderowaniem po stronie serwera, API oparte na różnych protokołach, mikroserwisy, a nawet aplikacje CLI. To oznacza, że przystępując do różnych projektów, programiści nie muszą za każdym razem uczyć się nowych narzędzi, co znacznie ułatwia pracę.

Po więcej informacji na temat NestJS zapraszamy na webinar „Dlaczego warto tworzyć mikroserwisy z NestJS?”. Zapisy prowadzone są TUTAJ.

Webinar nt. NestJS

Jakie są główne wady i zalety tego frameworka?

Nie ma takich narzędzi, które byłyby cudownym środkiem pozbawionym wad. Dlatego każdy projekt wymaga głębokiej analizy i wykorzystania odpowiednio dopasowanych narzędzi. Z mojego punktu widzenia, w projektach, w których go używałem, NestJS był prawie idealnym rozwiązaniem. Niektórzy uważają, jest wolny, ale ja nie mogę tego powiedzieć, bo to bardziej zależy od platformy i języka, w którym jest utworzony. Inni mówią, że ma wysoki próg wejścia i trudną dokumentację, ale w moim przypadku nie jest to problemem, ale mocną stroną. Na pewno będę go używał w następnych projektach.

Czy NestJS jest trudny, czy też łatwy do nauczenia? Komu może przydać się nauka NestJS?

NestJS jest zbudowany tak, aby każdy, kto zaczyna z nim pracować, nie musiał się uczyć wszystkiego od początku. To była główna idea, która stała za stworzeniem tego frameworka. Faktycznie NestJS wykorzystuje framework Express. Kto zna Express, temu już troszeczkę łatwiej będzie korzystać z Nesta. Dla firm oznacza to, że migracja z Express na Nest będzie już prostsza. Z drugiej strony NestJS jest mocno inspirowany Angularem. To znaczy, że programiści, którzy już mieli doświadczenie z Angularem, będą znajomi z koncepcjami użytymi w NestJS. Dzięki temu front-end developerzy mogą brać udział w projektach już jako full-stack developerzy.


Artiom Matusenco. Software Engineer w Capgemini Engineering. Posiada ponad 6-letnie doświadczenie w budowaniu skalowalnych rozwiązań webowych dla różnych dziedzin. Z Capgemini Engineering jest związany od ponad 3 lat, realizując się przy ambitnych projektach o wysokim profilu technologicznym, a także koordynując prace projektowe jako team leader. Za najciekawszy i pełen wyzwań projekt uważa stworzenie systemu autoryzacji i autentykacji dla super-aplikacji oraz jednej z platform streamingowych. W jego portfolio znajdziemy również prace nad aplikacją do kontroli misji, która zapewnia monitorowanie i kontrolę roju UAV (bezzałogowych statków powietrznych). Po pracy spełnia się jako pilot i konstruktor dronów FPV (first person view), mieszka w Odessie (Ukraina) z żoną i córką.

najwięcej ofert html

Od ponad ośmiu lat pracuje jako redaktorka, dziennikarka i copywriterka, a od niedawna dba o treści oraz rozwój portalu poświęconego branży IT. Autorka wywiadów, tekstów eksperckich, newsów.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://justjoin.it/blog/nestjs-czym-jest-jakie-ma-funkcje-jakie-sa-wady-i-zalety-tego-frameworka" order_type="social" width="100%" count_of_comments="8" ]