Dobre i złe strony tworzenia aplikacji internetowych w Node.js

author
18 minutes, 36 seconds Read
SPIS TREŚCI

Czas czytania: 13 minut

Będąc najpopularniejszym językiem programowania, JavaScript jest również jedną z najbardziej uniwersalnych technologii tworzenia oprogramowania. Tradycyjnie używany jako narzędzie do tworzenia frontendów internetowych, stał się również głównym międzyplatformowym narzędziem do tworzenia aplikacji mobilnych jako podstawowa technologia dla dużej liczby platform, takich jak Apache Cordova/PhoneGap, React Native, NativeScript, Appcelerator Titanium.

Ale obszary zastosowania JavaScript nie kończą się tutaj. Ostatnio było dużo szumu wokół wykorzystania JavaScriptu do programowania po stronie serwera. Jednym z narzędzi, które wskazało tę zmianę w rozwoju sieci był Node.js.

Czym jest Node.js?

Node.js nie jest właściwie frameworkiem czy biblioteką, ale środowiskiem uruchomieniowym, opartym na silniku V8 Chrome JavaScript.

Technologia została po raz pierwszy przedstawiona w 2009 roku przez Ryana Dahla na corocznym europejskim JSConf i natychmiast została uznana za „najbardziej ekscytujący pojedynczy element oprogramowania w obecnym wszechświecie JavaScript”.

Jako projekt open-source, Node.js był sponsorowany przez Joyent, dostawcę rozwiązań chmury obliczeniowej i hostingu. Firma zainwestowała w wiele innych technologii, takich jak Ruby on Rails framework, i świadczyła usługi hostingowe dla Twittera i LinkedIn. Ten ostatni stał się również jedną z pierwszych firm, które wykorzystały Node.js do backendu swoich aplikacji mobilnych. Technologia ta została później przyjęta przez wielu liderów technologicznych, takich jak Uber, eBay, Walmart i Netflix, aby wymienić tylko kilka z nich.

Jednakże dopiero niedawno rozpoczęło się szerokie przyjęcie JavaScript po stronie serwera z Node.js. Zainteresowanie tą technologią osiągnęło szczyt w 2017 roku, zgodnie z Google Trends, i utrzymuje się na wysokim poziomie.

Node.js pliki do pobrania. Zainstaluj Long-Term Support i najnowsze wersje Node.js dla Windows i MacOS tutaj. Przypominamy również, że npm jest dystrybuowany z Node.js out-of-the-box.

Dokumentacja. Znajdź dokumentację i przewodnik rozpoczęcia pracy pod tym linkiem.

Node.js IDEs . Prawie każdy popularny edytor kodu ma wsparcie i wtyczki dla JavaScript i Node.js, więc liczy się tylko to, jak dostosujesz IDE do swoich potrzeb kodowania. Ale wielu programistów bardzo chwali sobie specjalne narzędzia od VS Code, Brackets, Atom i WebStorm.

Frameworki. Używanie oprogramowania pośredniczącego nad czystym Node.js jest powszechną praktyką, która ułatwia życie programistom. Mamy osobny artykuł porównujący popularne frameworki Node.js, w którym przyglądamy się Express.js, Meteor, Sales.js, Koa.js, Keystone.js i Loopback.js.

Więcej narzędzi ekosystemu JavaScript używanych z Node.js, zobacz dedykowany artykuł.

Mocne i słabe strony Node.js sprawiają, że jest on przedmiotem gorącej dyskusji. Aby wyprostować sprawę, przeanalizowaliśmy oba te aspekty – wady i zalety Node.js – próbując dowiedzieć się, jakie projekty mogą skorzystać na tym wyborze technologii. Dlaczego więc używać Node.js?

Szybkie wyjaśnienie, czym jest Node.js (proszę, zasubskrybuj, jeśli chcesz więcej treści wideo)

Zalety Node.js

⊕ Solidny stos technologiczny

JavaScript okazał się niekwestionowanym liderem wśród najpopularniejszych języków programowania. Z kolei Node.js stał się samodzielną nazwą w branży. Z łączną liczbą 368 985 988 pobrań i ponad 750 nowymi współtwórcami, jak stwierdzono w raporcie Node-by-numbers 2018, projekt wydaje się być silniejszy niż kiedykolwiek.

Używając Node.js dla backendu, automatycznie otrzymujesz wszystkie plusy rozwoju pełnego stosu JavaScript, takie jak:

  • lepsza wydajność i ogólna produktywność deweloperów
  • współdzielenie kodu i ponowne wykorzystanie
  • szybkość i wydajność
  • łatwe dzielenie się wiedzą w zespole
  • ogromna liczba darmowych narzędzi

W konsekwencji Twój zespół jest o wiele bardziej elastyczny, rozwój jest mniej czasochłonny, a w rezultacie otrzymujesz szybkie i niezawodne oprogramowanie. Programiści wyszkoleni we frontendowym JavaScripcie mogą zacząć programować stronę serwera przy minimalnym wysiłku. Mając ten sam język po obu stronach, możesz ponownie wykorzystać kod na frontend i backend poprzez zawijanie go w moduły i tworzenie nowych poziomów abstrakcji.

Wbrew powszechnemu przekonaniu, będąc programistą full stack, nie jesteś w żaden sposób ograniczony do tradycyjnego stosu MEAN (MongoDB, Express.js, AngularJS i Node.js). Jedynym must-have w tym przypadku jest Node.js (nie ma alternatywy w JavaScript dla programowania backendowego). Pozostałe technologie w ramach tego stosu są opcjonalne i można je zastąpić innymi narzędziami zapewniającymi podobną funkcjonalność (o alternatywach przeczytaj w naszym osobnym artykule).

⊕ Szybkie przetwarzanie i model oparty na zdarzeniach

Node.js jest szybki; to nie mit. Spójrz na testy wydajności przeprowadzone przez toptal.com, porównujące jak GO, PHP, Java i Node.js radzą sobie z jednoczesnymi żądaniami. Istnieje kilka powodów, dla których Node.js pokazuje takie wyniki:

Silnik V8. Silnik użyty w implementacji Node.js został pierwotnie opracowany dla przeglądarki Chrome. Napisany w C++, Chrome’s V8 jest używany do kompilacji funkcji napisanych w JavaScript do kodu maszynowego, i wykonuje tę pracę z imponującą prędkością. Wystarczy sprawdzić benchmarki wydajności na blogu V8. Dzięki temu, że Google mocno inwestuje w swój silnik, V8 co roku demonstruje poprawę wydajności, a Node.js wyciąga z niego cały worek korzyści.

Non-blocking Input/Output i asynchroniczna obsługa żądań sprawiły, że Node.js jest w stanie przetwarzać żądania bez żadnych opóźnień. W kontekście backendu, przetwarzanie synchroniczne zakłada, że kod jest wykonywany w sekwencji. W związku z tym, każde żądanie blokuje wątek, sprawiając, że inne żądania czekają na jego zakończenie. Przetwarzanie asynchroniczne pozwala na przetwarzanie żądań bez blokowania (non-blocking I/O) wątku. Tak więc po przetworzeniu żądania, może on wypchnąć wywołanie zwrotne i kontynuować obsługę żądań. To pomaga Node.js w pełni wykorzystać single threading, co skutkuje krótkim czasem odpowiedzi i współbieżnym przetwarzaniem.

Innym aspektem jest model oparty na zdarzeniach. Kiedy używa się wspólnego języka zarówno po stronie klienta, jak i serwera, synchronizacja odbywa się szybko, co jest szczególnie pomocne w przypadku aplikacji opartych na zdarzeniach i działających w czasie rzeczywistym. Ze względu na swoją asynchroniczną, nieblokującą, jednowątkową naturę, Node.js jest popularnym wyborem dla gier online, czatów, wideokonferencji lub wszelkich rozwiązań, które wymagają stale aktualizowanych danych.

Przykłady mówią same za siebie: wiele wiodących firm zmieniło technologie na rozwinięte aplikacje Node.js i zauważyło znaczącą poprawę – na przykład firma PayPal zauważyła 35-procentowy spadek czasu reakcji po migracji z Javy.

⊕ Skalowalna technologia dla mikroserwisów

Ponieważ jest to lekkie narzędzie technologiczne, użycie Node.js do architektury mikroserwisów jest świetnym wyborem. Ten styl architektoniczny jest najlepiej opisany przez Martina Fowlera i Jamesa Lewisa jako „podejście do tworzenia pojedynczej aplikacji jako zestawu małych usług, z których każda działa w swoim własnym procesie i komunikuje się za pomocą lekkich mechanizmów, często API zasobów HTTP.”

Właściwie, rozbijając logikę aplikacji na mniejsze moduły, mikroserwisy, zamiast tworzyć jeden, duży monolityczny rdzeń, umożliwiasz lepszą elastyczność i kładziesz podwaliny pod dalszy rozwój. W rezultacie znacznie łatwiej jest dodawać kolejne mikroserwisy na wierzchu istniejących niż integrować dodatkowe funkcje z podstawową funkcjonalnością aplikacji.

Architektura monolityczna vs architektura mikroserwisowa w pigułce

Node.js jest technologią z wyboru przy budowaniu i wdrażaniu rozwiązań ekosystemu mikroserwisów – wynika z raportu Node.js User Survey Report 2017. Około połowa respondentów używa technologii związanych z mikroserwisami (a mianowicie Docker, wiodącej platformy konteneryzacji oprogramowania) do budowania aplikacji internetowych Node.js:

Odsetek deweloperów używających konteneryzacji Docker z Node.js

Najnowsze wyniki badań pokazują, że technologie związane z mikroserwisami, takie jak Docker i Kubernetes, doświadczyły wzrostu wykorzystania w 2018 r., ponieważ ten styl architektoniczny staje się tylko bardziej popularny. Z każdą mikroserwisem komunikującym się z bazą danych bezpośrednio poprzez strumienie, taka architektura pozwala na lepszą wydajność i szybkość aplikacji. Dopasowanie w niebie jest wspierane przez dwa frameworki szeroko stosowane w architekturze mikroserwisów. Framework Express wymienia IBM i Uber wśród swoich użytkowników, podczas gdy restify jest używany przez npm i Netflix.

Jako przykład implementacji na żywo, przejście Walmartu na architekturę mikroserwisów z Node.js zaowocowało następującymi natychmiastowymi korzyściami:

  • Overnight 20-procentowy wzrost konwersji w ogóle i 98-procentowy wzrost konwersji mobilnej
  • Stuprocentowy uptime w Czarny Piątek (obsługa ponad 500 milionów odsłon)
  • Oszczędność do 40 procent na sprzęcie i 20-50 procent na ogólnych operacjach

Innym jaskrawym przykładem tego, jak Node.js może przewyższyć konkurencję pod względem wydajności, jest przypadek GoDaddy. Prowadząc kampanię reklamową SuperBowl, firma była w stanie obsłużyć 10.000 żądań na sekundę bez przestojów, używając tylko 10 procent sprzętu dzięki Node.js.

⊕ Bogaty ekosystem

Jedno słowo – npm, domyślny menedżer pakietów Node.js, służy również jako rynek dla narzędzi open source JavaScript, który odgrywa ważną rolę w rozwoju tej technologii. Z około 836,000 bibliotek dostępnych w rejestrze npm i ponad 10,000 nowych publikowanych każdego tygodnia, ekosystem Node.js jest dość bogaty. Te same statystyki wskazują, że 97 procent nowoczesnych aplikacji internetowych składa się z modułów npm. I to jest dowód na jego niekwestionowaną popularność wśród programistów.

Przy tak ogromnej różnorodności darmowych narzędzi dostępnych za pomocą kilku kliknięć, istnieje ogromny potencjał do wykorzystania Node.js. Jednocześnie oprogramowanie open source cieszy się rosnącą popularnością, ponieważ pozwala na budowanie nowych rozwiązań zmniejszając ogólne koszty rozwoju i czas wprowadzania na rynek.

⊕ Silne wsparcie korporacyjne

Jak wspomniano powyżej, rozwój Node.js był wspierany przez firmę Joyent. W 2015 roku powstała fundacja Node.js Foundation, której celem było „umożliwienie powszechnej adopcji i pomoc w przyspieszeniu rozwoju Node.js.” Członkami założycielami organizacji zostali IBM, Microsoft, PayPal, Fidelity i SAP.

Lista organizacji wykorzystujących Node.js w produkcji stale rośnie. Obecnie obejmuje ona prawie trzysta znanych firm, takich jak PayPal, Medium, Trello, Uber i Zendesk.

Bardzo niewiele projektów open source cieszyło się tak silnym wsparciem ze strony wiodących światowych firm. A to zapowiada, że Node.js ma niezwykły potencjał.

⊕ Bezproblemowa obsługa JSON

Ale inne technologie backendowe, takie jak PHP i Ruby on Rails, mogą używać formatu JSON do komunikacji, Node.js robi to bez konwersji między modelami binarnymi i używa JavaScript. Jest to szczególnie przydatne, gdy trzeba zbudować RESTful API dla obsługi baz danych NoSQL, takich jak MongoDB – litera M w stosie MEAN. Ta bezproblemowa komunikacja z jednym z głównych standardów transferu danych jest kolejną zaletą ekosystemu JavaScript.

Wady Node.js

Θ Wąskie gardła wydajności z ciężkimi zadaniami obliczeniowymi

Największą wadą Node.js nawet teraz jest jego niezdolność do przetwarzania zadań związanych z procesorem. Jednak, aby zrozumieć, jakie są korzenie tego problemu, potrzebujemy trochę kontekstu. Zacznijmy od podstaw, od samego JavaScriptu.

Jak wiemy, Node.js jest środowiskiem uruchomieniowym, które wykonuje JavaScript po stronie serwera. Będąc językiem programowania frontendowego, JavaScript używa pojedynczego wątku do szybkiego przetwarzania zadań. Wątkowanie nie jest wymagane do jego działania, ponieważ zadania w JavaScript są lekkie i zajmują niewiele CPU.

Wracając do Node.js, teraz wiemy, dlaczego jest uważany za jednowątkowy: Przetwarza JavaScript, który jest jednowątkowy. Nieblokujący model wejścia/wyjścia oznacza, że Node.js odpowiada na wezwanie klienta do rozpoczęcia żądania i przetwarza zadanie w czasie, w którym wystrzeliwuje wywołanie zwrotne, ponieważ zadanie jest gotowe. Przetwarzając zadania asynchronicznie, Node wykonuje kod JS na swoim pojedynczym wątku na zasadzie zdarzenia. To jest to, co nazywa się pętlą zdarzeń.

Problem pojawia się, gdy Node.js otrzymuje zadanie związane z procesorem: Ilekroć ciężkie żądanie przychodzi do pętli zdarzeń, Node.js ustawiłby cały dostępny procesor, aby najpierw go przetworzyć, a następnie odpowiedzieć na inne żądania oczekujące w kolejce. To powoduje powolne przetwarzanie i ogólne opóźnienie w pętli zdarzeń, dlatego Node.js nie jest zalecany do ciężkich obliczeń.

Jednakże w 2018 roku wielowątkowość została wprowadzona w Node.js jako eksperymentalna funkcja z aktualizacją 10.5.0. Nowa funkcja o nazwie moduł wątków robotniczych może być użyta do wykorzystania dodatkowych wątków z puli wątków, do przenoszenia zadań związanych z procesorem. Ale to może być zrobione tylko na maszynach z wieloma rdzeniami, ponieważ Node.js nadal pozwala na użycie jednego rdzenia dla jednego wątku. Oznacza to, że ciężkie procesy równoległe mogą być wykonywane na innym wątku. Ta funkcja pozostaje eksperymentalna w wersji 12 Node.js, ale została znacznie ulepszona.

Θ Callback hell issue

Dzięki swojej asynchronicznej naturze Node.js w dużym stopniu opiera się na wywołaniach zwrotnych, funkcjach, które są uruchamiane po zakończeniu każdego zadania w kolejce. Utrzymywanie wielu zadań w kolejce w tle, z których każde ma swój callback, może skutkować tzw. piekłem callbacków, co bezpośrednio wpływa na jakość kodu. Mówiąc najprościej, jest to „sytuacja, w której wywołania zwrotne są zagnieżdżone w innych wywołaniach zwrotnych na kilku poziomach głębokości, potencjalnie utrudniając zrozumienie i utrzymanie kodu.”

Przykład kodu z zagnieżdżonymi wywołaniami zwrotnymi

Źródło obrazu: callbackhell.com

Jest to często uważane za oznakę słabych standardów kodowania i braku doświadczenia w JavaScript, a w szczególności Node.js. Kod, przedstawiony powyżej, może być refaktoryzowany i uproszczony, w zaledwie kilku krokach, jak pokazano na stronie callbackhell.com.

Θ Niedojrzałość narzędzi

Pomimo że podstawowe moduły Node.js są dość stabilne i można je uznać za dojrzałe, w rejestrze npm znajduje się wiele narzędzi, które są albo słabej jakości, albo nie są odpowiednio udokumentowane/testowane. Co więcej, sam rejestr nie jest wystarczająco dobrze zorganizowany, aby oferować narzędzia w oparciu o ich ocenę lub jakość. Stąd może być trudno znaleźć najlepsze rozwiązanie dla swoich celów, nie wiedząc, czego szukać.

Fakt, że Node.Ekosystem Node.js jest w większości open source, ma to również swój wpływ. Podczas gdy jakość podstawowej technologii Node.js jest nadzorowana przez Joyent i innych głównych współtwórców, reszcie narzędzi może brakować jakości i wysokich standardów kodowania ustalonych przez globalne organizacje.

Θ Rosnące zapotrzebowanie na doświadczonych profesjonalistów

Wbrew powszechnemu przekonaniu, nie wszyscy programiści JavaScript są również programistami Node.js. Opanowanie programowania JavaScript po stronie serwera wymaga znacznego wysiłku i pewnego zaplecza w rozwoju backendu. Ze względu na tak stromą krzywą uczenia się, liczba inżynierów Node.js jest znacznie niższa niż całkowita liczba specjalistów JS.

Ponieważ szum wokół Node.js wciąż rośnie, zwiększa się zapotrzebowanie na doświadczonych specjalistów w tej dziedzinie.

Istnieje duża luka w wiedzy między studentami inżynierii rozpoczynającymi pracę a potrzebami pracodawców
Źródło: HackerRank

Tym samym, z milionami programistów JavaScript tam, może być trudno znaleźć wykwalifikowanego profesjonalistę Node.js dla swojego projektu. W tym przypadku, na pewno nie chcesz ograniczać swoich poszukiwań tylko do jednego kraju. Pozyskiwanie talentów technicznych za granicą od dawna stało się normą w branży IT.

How to Learn Node.js

Here’s your starter pack to understanding and working with Node.js.

Turorials. Nie ograniczaj się do oficjalnych dokumentów: Zobacz tony darmowych lekcji na W3Schools, odwiedź międzynarodowe warsztaty z Nodeschool i oczywiście skorzystaj z biblioteki darmowych tutoriali przez freeCodeCamp.

Klasy. Jeśli jesteś oddanym studentem, rozpocznij kurs online na temat Node.js: Oto jeden na PluralSight, i oczywiście, jeden na Udemy.

Interaktywne uczenie się. Zobacz darmowe i płatne zasoby, które pozwalają na naukę Node.js za pomocą interaktywnych lekcji i ćwiczeń. Jednym z najpopularniejszych jest The Art of Node.

Społeczność. Zobacz oficjalną listę projektów Node.js prowadzonych przez społeczność. Szybka wskazówka: Poszukaj grup i społeczności na Facebooku w swojej okolicy/pierwszym języku. I oczywiście odnieś się do społeczności Node.js na Reddit, tagu na StackOverflow, oraz tematu na Quora.

Node.js vs Ruby on Rails vs Django vs Symfony

Nie ma wielu technologii, które mogą konkurować z popularnością Node.js lub zapotrzebowaniem rynku. Jeśli jednak spojrzymy na alternatywy dla programowania po stronie serwera, zobaczymy co najmniej trzy kolejne świecące gwiazdy na niebie. Są to Ruby on Rails, Django oraz Symfony. Zobaczmy, czy dorównują one Node.js pod względem zalet i dzielą jego wady.

Porównanie statystyk Node.js, Rails, Django i Symfony

Źródło: StackShare

Ruby on Rails jest znany ze swojego prostego, ale opiniotwórczego języka i dostępności gemów – własnego ekosystemu niestandardowych pakietów Railsów. Ruby sam w sobie jest intuicyjnym i przyjaznym dla początkujących językiem z wspierającą i oddaną społecznością, która wnosi kod do RubyGems. Rails został stworzony do szybkiego rozwoju i prototypowania, ale jest z powodzeniem używany przez takie marki jak GitHub, Twitter czy Airbnb, co dowodzi jego szerokiego zakresu zastosowań. Jego funkcjonalność migracji danych jest szczególnie imponująca – w przeciwieństwie do Node.js, który używa dodatkowych pakietów, Rails posiada już funkcję pozwalającą na łatwe i spójne manipulowanie bazą danych.

Kiedy powinieneś używać Rails zamiast Node.js? Railsy nie mogą konkurować z wydajnością i skalowalnością Node’a, jednak Railsy mogą być lepszym wyborem dla szybkiego rozwoju. Node.js musi używać modułów stron trzecich, aby osiągnąć taką szybkość rozwoju, ale Ruby ma to wszystko w sposób niekonwencjonalny. Jeśli chodzi o język, żadne narzędzie nie ma wyraźnej przewagi – podczas gdy Node.js ma wysoki popyt, ale niską propozycję, pula talentów Rubiego jest początkowo mniejsza.

Django jest frameworkiem internetowym na Pythonie, najszybciej rozwijającym się językiem programowania według danych na StackOverflow. Sprzedawany jako narzędzie dla perfekcjonistów z terminami, został stworzony, aby tworzyć aplikacje tak szybko, jak to możliwe, w najbardziej uporządkowany, bezpieczny i łatwy do zrozumienia sposób. Django, wraz z Pythonem, jest również uważany za narzędzie o łagodniejszej krzywej uczenia się. Podczas gdy praca z Node.js będzie wymagała rozległej wiedzy o JavaScript, Django jest technologią „na baterie”. Posiada wbudowany panel administracyjny, aby łatwo aktualizować i utrzymywać bazy danych oraz szablony, aby przyspieszyć pracę.

Kiedy powinieneś używać Django zamiast Node.js? W porównaniu do Node.js, Django jest narzędziem przyjaznym dla początkujących. Poza samym językiem, nie ma prawdziwego powodu, aby wybrać jeden nad drugim. Jest to bardziej pytanie o Twój komfort i doświadczenie z JavaScript lub Pythonem niż o konkretne przypadki użycia.

Symfony jest frameworkiem PHP, co automatycznie zapewnia mu ponad 20 lat dokumentacji i ogromną, aktywną społeczność. Ponad 80 procent stron internetowych jest zasilanych przez PHP z projektami takimi jak Facebook, Baidu, czy inne strony działające na WordPressie. Symfony jest tylko jednym z frameworków PHP dostępnych na rynku, ale jest imponująco stabilny, skalowalny i dobrze sprawdza się w dużych projektach. Wykorzystuje również silnik szablonów Twig, który działa podobnie do wielu systemów zarządzania treścią opartych na PHP.

Kiedy powinieneś używać Symfony zamiast Node.js? Symfony naturalnie wspiera cechy CMSów takie jak szablony i pulpity administratora, co pozwala na prowadzenie blogów, serwisów informacyjnych i sklepów eCommerce. Niektóre z przykładów obejmują Yahoo Answers, Dailymotion i National Geographic.

Make Node.js Shine

Oczywiście, z wszystkimi wymienionymi zaletami i wadami Node.js, technologia ta nie jest srebrną kulą. Ale nie jest nią również Java, .Net framework czy PHP. Istnieją jednak specyficzne przypadki, w których każda z wymienionych technologii sprawdza się najlepiej. Dla Node.js są to aplikacje czasu rzeczywistego z intensywnym I/O, wymagające szybkości i skalowalności.

Mogą to być sieci społecznościowe, aplikacje do gier, czaty na żywo lub fora, jak również oprogramowanie giełdowe lub serwery reklamowe, gdzie szybkość jest wszystkim. Szybki i skalowalny, Node.js jest technologią z wyboru dla urządzeń i aplikacji IoT intensywnie przetwarzających dane w czasie rzeczywistym.

Node.js sprawił, że JavaScript stał się technologią full-stack z wyboru dla rozwoju aplikacji internetowych. Ze względu na swoją nieblokującą architekturę, Node.js działa dobrze przy kodowaniu i nadawaniu wideo i audio, wysyłaniu wielu plików i strumieniowaniu danych. To ostatnie może być niezwykle przydatne w oprogramowaniu dla branży turystycznej, gdzie trzeba pobierać dane z różnych interfejsów API różnych dostawców.

Ostatnio Node.js był aktywnie wykorzystywany w oprogramowaniu na poziomie przedsiębiorstwa. Chociaż wciąż jest wiele sporów na ten temat, wiele dużych firm i globalnych organizacji, takich jak Capital One i NASA, już przyjęło Node.js. A ekosystem Node.js dla przedsiębiorstw nadal dojrzewa dzięki takim narzędziom, jak IBM API Connect, Triton firmy Joyent, N|Solid firmy NodeSource, Red Hat OpenShift, Trace firmy RisingStack i inne.

Ten post jest częścią naszej serii „The Good and the Bad”. Aby uzyskać więcej informacji na temat wad i zalet najpopularniejszych technologii, zobacz inne artykuły z tej serii:

The Good and The Bad of Xamarin Mobile Development

The Good and the Bad of JavaScript Full Stack Development

The Good and the Bad of ReactJS and React Native

The Good and the Bad of Swift Programming Language

The Good and the Bad of .NET Framework

Dobre i złe strony Angular Development

Dobre i złe strony Selenium Test Automation Tool

Dobre i złe strony Android App Development

Dobre i złe strony Android App Development

Similar Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.