Olvasási idő: 13 perc
A legnépszerűbb programozási nyelvként a JavaScript az egyik legáltalánosabb szoftverfejlesztési technológia is. Hagyományosan webes frontend-fejlesztési eszközként használják, de számos platform alaptechnológiájaként – mint például az Apache Cordova/PhoneGap, React Native, NativeScript, Appcelerator Titanium – a mobilfejlesztés egyik legfontosabb, platformokon átívelő eszközévé is vált.
A JavaScript alkalmazási területei azonban itt még nem érnek véget. Az utóbbi időben nagy a felhajtás a JavaScript szerveroldali programozásra való használata körül. Az egyik eszköz, amely jelezte ezt a változást a webfejlesztésben, a Node.js volt.
- Mi a Node.js?
- A Node.js előnyei
- ⊕ Robusztus technológiai stack
- ⊕ Gyors feldolgozás és eseményalapú modell
- ⊕ Skálázható technológia a mikroszolgáltatásokhoz
- ⊕ Gazdag ökoszisztéma
- ⊕ Erős vállalati támogatás
- ⊕ Zökkenőmentes JSON-támogatás
- A Node.js hátrányai
- Θ Teljesítményszűk keresztmetszetek nehéz számítási feladatoknál
- Θ Callback hell issue
- Θ Az eszközkészítés éretlensége
- Θ Növekvő kereslet a tapasztalt szakemberek iránt
- Hogyan tanulja meg a Node.js-t
- Node.js vs Ruby on Rails vs Django vs Symfony
- Make Node.js Shine
Mi a Node.js?
A Node.js valójában nem egy keretrendszer vagy könyvtár, hanem egy futásidejű környezet, amely a Chrome V8 JavaScript-motorján alapul.
A technológiát még 2009-ben mutatta be Ryan Dahl az évente megrendezett európai JSConfon, és azonnal “a jelenlegi JavaScript-univerzum legizgalmasabb egyetlen szoftvereként” ismerték el.
A Node.js-t mint nyílt forráskódú projektet a Joyent, egy felhőalapú számítástechnikai és tárhelyszolgáltató szponzorálta. A vállalat számos más technológiába is befektetett, például a Ruby on Rails keretrendszerbe, és tárhelyszolgáltatást nyújtott a Twitter és a LinkedIn számára. Ez utóbbi volt az egyik első olyan vállalat is, amely a Node.js-t használta mobilalkalmazásainak backendjéhez. A technológiát később számos technológiai vezető vállalat is átvette, például az Uber, az eBay, a Walmart és a Netflix, hogy csak néhányat említsünk.
A szerveroldali JavaScript széles körű alkalmazása azonban csak a közelmúltban kezdődött meg a Node.js segítségével. A Google Trends szerint 2017-ben tetőzött az érdeklődés e technológia iránt, és továbbra is magas.
Node.js letöltések. Telepítse a hosszú távú támogatást és a Node.js legújabb verzióit Windowsra és MacOS-re itt. Továbbá egy emlékeztető – az npm-et a Node.js out-of-the-box-szal együtt terjesztik.
Dokumentáció. A dokumentációt és a kezdeti útmutatót a linken találja.
Node.js IDE-k . Szinte minden népszerű kódszerkesztő rendelkezik támogatással és bővítményekkel a JavaScript és a Node.js számára, így csak az számít, hogyan szabja az IDE-t a kódolási igényeihez. Sok fejlesztő azonban nagyra értékeli a VS Code, a Brackets, az Atom és a WebStorm speciális eszközeit.
Frameworks. A middleware használata a tiszta Node.js felett gyakori gyakorlat, amely megkönnyíti a fejlesztők életét. Külön cikkünkben összehasonlítjuk a népszerű Node.js keretrendszereket, ahol az Express.js-t, a Meteort, a Sales.js-t, a Koa.js-t, a Keystone.js-t és a Loopback.js-t nézzük meg.
A Node.js mellett használt további JavaScript-ökoszisztéma-eszközökről lásd a külön cikket.
A Node.js erősségei és gyengeségei miatt heves viták tárgya. Hogy tisztázzuk a helyzetet, elemeztük mindkettőt – a Node.js előnyeit és hátrányait -, hogy kiderítsük, milyen projektek profitálhatnak ebből a technológiai választásból. Tehát, miért érdemes a Node.js-t használni?
Egy gyors magyarázat arról, mi is az a Node.js (kérjük, iratkozzon fel, ha további videótartalmakat szeretne)
A Node.js előnyei
⊕ Robusztus technológiai stack
A JavaScript vitathatatlanul vezetőnek bizonyult a legnépszerűbb programozási nyelvek között. A Node.js viszont önálló névvé vált az iparágban. A 2018-as Node-by-numbers jelentésben szereplő 368 985 988 letöltéssel és több mint 750 új közreműködővel úgy tűnik, hogy a projekt erősebb, mint valaha.
A Node.js-t a backendhez, automatikusan megkapja a full stack JavaScript fejlesztés minden előnyét, mint például:
- jobb hatékonyság és általános fejlesztői termelékenység
- kódmegosztás és újrafelhasználás
- gyorsaság és teljesítmény
- egyszerű tudásmegosztás a csapaton belül
- rengeteg ingyenes eszköz
Ezek következtében a csapata sokkal rugalmasabb, a fejlesztés kevésbé időigényes, és ennek eredményeként gyors és megbízható szoftvereket kap. A frontend JavaScriptben képzett fejlesztők minimális erőfeszítéssel elkezdhetik a szerveroldal programozását. Mivel mindkét oldalon ugyanazt a nyelvet használja, a frontend és a backend kódját modulokba csomagolva és új absztrakciós szinteket létrehozva újra felhasználhatja.
A közhiedelemmel ellentétben teljes veremű fejlesztőként semmiképpen sem korlátozódik a hagyományos MEAN (MongoDB, Express.js, AngularJS és Node.js) veremre. Az egyetlen must-have ebben az esetben a Node.js (a backend programozáshoz JavaScriptben nincs alternatíva). Az ezen a vermen belüli többi technológia opcionális, és helyettesíthető néhány más, hasonló funkcionalitást nyújtó eszközzel (az alternatívákról külön cikkünkben olvashat).
⊕ Gyors feldolgozás és eseményalapú modell
A Node.js gyors; ez nem mítosz. Nézze meg a toptal.com teljesítménytesztjeit, amelyek összehasonlítják, hogyan kezeli a GO, a PHP, a Java és a Node.js az egyidejű kéréseket. Több oka is van annak, hogy a Node.js ilyen eredményeket mutat:
V8 motor. A Node.js implementációjában használt motort eredetileg a Chrome böngészőhöz fejlesztették ki. A Chrome C++ nyelven írt V8-at arra használják, hogy a JavaScriptben írt függvényeket gépi kóddá fordítsák, és lenyűgöző sebességgel végzi a munkát. Elég csak a V8 blogjában található teljesítmény benchmarkokat megnézni. Köszönhetően annak, hogy a Google komolyan befektetett a motorjába, a V8 évről évre teljesítményjavulást mutat, és a Node.js az előnyök egész zsákját kihozza belőle.
A nem blokkoló bemenet/kimenet és az aszinkron kéréskezelés tette a Node.js-t képessé a kérések késedelem nélküli feldolgozására. A backenddel összefüggésben a szinkron feldolgozás azt feltételezi, hogy a kódot sorban hajtják végre. Így minden egyes kérés blokkol egy szálat, ami miatt a többi kérésnek várnia kell a befejezésre. Az aszinkron feldolgozás lehetővé teszi a kérések feldolgozását a szál blokkolása nélkül (nem blokkoló I/O). Így egy kérés feldolgozása után ki tud tolni egy visszahívást, és folytathatja a kérések kiszolgálását. Ez segít a Node.js-nek, hogy a legtöbbet hozza ki az egyszálúságból, ami rövid válaszidőt és egyidejű feldolgozást eredményez.
Egy másik szempont az eseményalapú modell. Ha közös nyelvet használunk mind a kliens-, mind a szerveroldalon, a szinkronizálás gyorsan történik, ami különösen hasznos az eseményalapú, valós idejű alkalmazásoknál. Aszinkron, nem blokkoló, egyszálas jellege miatt a Node.js népszerű választás online játékokhoz, csevegésekhez, videokonferenciákhoz vagy bármilyen olyan megoldáshoz, amely folyamatosan frissülő adatokat igényel.
A példák magukért beszélnek: számos vezető vállalat váltott technológiát a kifejlesztett Node.js alkalmazásokra, és jelentős javulást tapasztaltak – a PayPal például 35 százalékos válaszidőcsökkenést észlelt, mióta áttért a Java-ról.
⊕ Skálázható technológia a mikroszolgáltatásokhoz
Mivel egy könnyű technológiai eszközről van szó, a Node.js használata a mikroszolgáltatási architektúrához remek választás. Ezt az architektúra-stílust Martin Fowler és James Lewis úgy írja le a legjobban, mint “egy olyan megközelítést, amely egyetlen alkalmazást kis szolgáltatások sorozataként fejleszt, amelyek mindegyike saját folyamatában fut, és könnyű mechanizmusokkal, gyakran egy HTTP-erőforrás API-val kommunikál.”
Az alkalmazás logikáját kisebb modulokra, mikroszolgáltatásokra bontva, egyetlen nagy, monolitikus mag létrehozása helyett nagyobb rugalmasságot tesz lehetővé, és megteremti a további növekedés alapjait. Ennek eredményeképpen sokkal könnyebb további mikroszolgáltatásokat hozzáadni a meglévőkhöz, mint további funkciókat integrálni az alkalmazás alapfunkcióihoz.
Monolitikus architektúra vs. mikroszolgáltatás-architektúra dióhéjban
A Node.js a Node.js User Survey Report 2017 szerint a mikroszolgáltatások ökoszisztéma-megoldásainak építése és telepítése során a Node.js a választott technológia. A válaszadók mintegy fele használ mikroszolgáltatásokkal kapcsolatos technológiákat (nevezetesen a Dockert, a vezető szoftverkonténerizációs platformot) Node.js webalkalmazások építéséhez:
A Docker konténerizálást Node.js-szel használó fejlesztők aránya
A legújabb eredmények szerint a mikroszolgáltatásokkal kapcsolatos technológiák, például a Docker és a Kubernetes használata 2018-ban növekedést tapasztalt, mivel ez az architektúrális stílus csak egyre népszerűbbé válik. Mivel az egyes mikroszolgáltatások közvetlenül streameken keresztül kommunikálnak az adatbázissal, az ilyen architektúra jobb teljesítményt és gyorsabb alkalmazást tesz lehetővé. Az égi párosítást két, a mikroszolgáltatás-architektúrához széles körben használt keretrendszer támogatja. Az Express keretrendszer az IBM-et és az Ubert sorolja a felhasználói közé, míg a restify-t az npm és a Netflix használja.
Az élő megvalósítás példájaként a Walmart mikroszolgáltatási architektúrára való áttérését a Node.js-re való áttérés a következő azonnali előnyökkel járt:
- Egy éjszakai 20 százalékos konverziónövekedés általában és 98 százalékos mobil konverziónövekedés
- Száz százalékos rendelkezésre állás a fekete pénteken (több mint 500 millió oldalletöltés kezelése)
- A hardveren akár 40 százalékos, az általános műveleteken pedig 20-50 százalékos megtakarítás
Egy másik ragyogó példa arra, hogy a Node.js a teljesítmény tekintetében felülmúlhatja a versenytársakat, a GoDaddy esete. A SuperBowl reklámkampányt futtatva a cég képes volt másodpercenként 10.000 kérést kezelni leállás nélkül, a hardver mindössze 10 százalékát használva a Node.jsnek köszönhetően.
⊕ Gazdag ökoszisztéma
Egy szó – npm, az alapértelmezett Node.js csomagkezelő, ez egyben a nyílt forráskódú JavaScript eszközök piactereként is szolgál, ami fontos szerepet játszik a technológia előretörésében. Mivel jelenleg mintegy 836 000 könyvtár érhető el az npm regiszterben, és hetente több mint 10 000 új könyvtárat tesznek közzé, a Node.js ökoszisztéma meglehetősen gazdag. Ugyanezek a statisztikák rámutatnak, hogy a modern webes alkalmazások 97 százaléka npm modulokból áll. És ez a bizonyíték arra, hogy vitathatatlanul népszerű a fejlesztők körében.
A Node.js használatában hatalmas lehetőségek rejlenek a néhány kattintással elérhető ingyenes eszközök ilyen széles választékával. Ugyanakkor a nyílt forráskódú szoftverek egyre nagyobb népszerűségnek örvendenek, mivel lehetővé teszik új megoldások létrehozását, ami csökkenti a fejlesztés teljes költségét és a piacra kerülés idejét.
⊕ Erős vállalati támogatás
Amint már említettük, a Node.js fejlesztését a Joyent támogatta. 2015-ben létrehozták a Node.js Foundationt, hogy “lehetővé tegye a Node.js széles körű elterjedését és segítsen felgyorsítani a Node.js fejlesztését”. A szervezet alapító tagjai az IBM, a Microsoft, a PayPal, a Fidelity és az SAP lettek.
A Node.js-t termelésben használó szervezetek listája folyamatosan bővül. Jelenleg közel háromszáz ismert vállalat szerepel rajta, például a PayPal, a Medium, a Trello, az Uber és a Zendesk.
Nagyon kevés nyílt forráskódú projekt élvezhette a világ vezető vállalatainak ilyen erős támogatását. És ez előrevetíti, hogy a Node.js kiemelkedő potenciállal rendelkezik.
⊕ Zökkenőmentes JSON-támogatás
Noha más backend technológiák, például a PHP és a Ruby on Rails képesek JSON formátumot használni a kommunikációhoz, a Node.js ezt a bináris modellek közötti konverzió nélkül, JavaScriptet használva teszi. Ez különösen akkor praktikus, ha RESTful API-kat kell készíteni a NoSQL adatbázis-támogatáshoz, mint például a MongoDB – a MEAN stack M betűje. Ez a zökkenőmentes kommunikáció az egyik legfontosabb adatátviteli szabványokkal a JavaScript ökoszisztéma másik előnye.
A Node.js hátrányai
Θ Teljesítményszűk keresztmetszetek nehéz számítási feladatoknál
A Node.js legnagyobb hátránya még most is az, hogy nem képes feldolgozni a CPU-hoz kötött feladatokat. Ahhoz azonban, hogy megértsük, mi ennek a problémának a gyökere, szükségünk van egy kis kontextusra. Kezdjük az alapokkal, magával a JavaScripttel.
Amint tudjuk, a Node.js egy olyan futásidejű környezet, amely a JavaScriptet szerveroldalon hajtja végre. Frontend programozási nyelv lévén a JavaScript egyetlen szálat használ a feladatok gyors feldolgozásához. A szálakra nincs szükség a működéséhez, mivel a JavaScriptben a feladatok könnyűek, és kevés CPU-t vesznek igénybe.
Visszatérve a Node.js-re, most már tudjuk, miért tekinthető egyszálasnak: JavaScriptet dolgoz fel, ami egyszálas. A nem blokkoló bemeneti/kimeneti modell azt jelenti, hogy a Node.js válaszol a kliens hívására, hogy elindítson egy kérést, és feldolgozza a feladatot az alatt az idő alatt, amíg a callbacket lövi, ahogy a feladat készen áll. A feladatok aszinkron feldolgozása során a Node egyetlen szálon, eseményenként hajtja végre a JS-kódot. Ezt nevezzük eseményhuroknak.
A probléma akkor jelentkezik, amikor a Node.js CPU-kötött feladatot kap: Amikor egy nehéz kérés érkezik az eseményhurokba, a Node.js az összes rendelkezésre álló CPU-t először ennek feldolgozására állítaná be, majd a többi sorban álló kérésre válaszolna. Ez lassú feldolgozást és általános késedelmet eredményez az eseményhurokban, ezért a Node.js nem ajánlott nehéz számításokhoz.
Mégis 2018-ban a 10.5.0 frissítéssel kísérleti funkcióként bevezetésre került a többszálúság a Node.js-ben. A worker threads modul nevű új funkcióval további szálakat lehet felhasználni egy szálkészletből, a CPU-kötött feladatok elvégzéséhez. Ez azonban csak több maggal rendelkező gépeken lehetséges, mivel a Node.js továbbra is csak egy magot használhat egy szálhoz. Ez azt jelenti, hogy a nehéz párhuzamos folyamatokat egy másik szálon lehet végrehajtani. Ez a funkció a Node.js 12-es verziójában még kísérleti állapotban van, de jelentősen javult.
Θ Callback hell issue
Aszinkron jellege miatt a Node.js erősen támaszkodik a callbackekre, vagyis azokra a függvényekre, amelyek a sorban lévő egyes feladatok befejezése után futnak le. Ha számos sorba állított feladatot tartunk a háttérben, mindegyiknek megvan a maga callbackje, az úgynevezett callback-pokolhoz vezethet, ami közvetlenül befolyásolja a kód minőségét. Egyszerűen fogalmazva, ez egy “olyan helyzet, amikor a callbackek több szint mélyen egymásba ágyazódnak más callbackek között, ami potenciálisan megnehezíti a kód megértését és karbantartását.”
Példa kódra egymásba ágyazott callbackekkel
Kép forrása: callbackhell.com
Mégis ezt gyakran a rossz kódolási szabványok és a JavaScript és különösen a Node.js iránti tapasztalat hiányának jelének tekintik. A fent ábrázolt kód refaktorálható és egyszerűsíthető, mindössze néhány lépésben, ahogy a callbackhell.com oldalon látható.
Θ Az eszközkészítés éretlensége
Noha a Node.js alapmoduljai meglehetősen stabilak és érettnek tekinthetők, az npm regiszterben számos olyan eszköz található, amelyek vagy rossz minőségűek, vagy nem megfelelően dokumentáltak/teszteltek. Ráadásul maga a regiszter nem elég jól strukturált ahhoz, hogy az eszközöket minősítésük vagy minőségük alapján ajánlja fel. Ezért nehéz lehet megtalálni a céljainknak legmegfelelőbb megoldást anélkül, hogy tudnánk, mit keressünk.
A tény, hogy a Node.js ökoszisztéma többnyire nyílt forráskódú, ennek is megvan a maga hatása. Míg a Node.js alaptechnológia minőségét a Joyent és más jelentős közreműködők felügyelik, a többi eszközből hiányozhat a globális szervezetek által meghatározott minőség és magas kódolási szabványok.
Θ Növekvő kereslet a tapasztalt szakemberek iránt
A közhiedelemmel ellentétben nem minden JavaScript-fejlesztő egyben Node.js fejlesztő is. A szerveroldali JavaScript-programozás elsajátítása jelentős erőfeszítést és bizonyos háttérismereteket igényel a backend-fejlesztésben. Az ilyen meredek tanulási görbe miatt a Node.js mérnökök száma lényegesen alacsonyabb, mint a JS szakemberek összlétszáma.
Amint a Node.js körüli hype tovább nő, úgy nő a kereslet a tapasztalt szakemberek iránt ezen a területen.
Nagy tudásbeli szakadék van a pályakezdő mérnökhallgatók és a munkaadók igényei között
Forrás: Így a több millió JavaScript-fejlesztő mellett nehéz lehet képzett Node.js szakembert találni a projekthez. Ebben az esetben biztosan nem érdemes csak egy országra korlátozni a keresést. A műszaki tehetségek tengerentúli beszerzése már régóta normává vált az IT-iparban.
Hogyan tanulja meg a Node.js-t
Itt a kezdőcsomagja a Node.js megértéséhez és a vele való munkához.
Turorials. Ne korlátozza magát a hivatalos dokumentációkra: Tekintse meg a W3Schools rengeteg ingyenes leckéjét, látogasson el a Nodeschool nemzetközi workshopjaira, és természetesen használja a freeCodeCamp ingyenes oktatókönyvtárát.
Osztályok. Ha elkötelezett tanuló vagy, kezdj el egy online tanfolyamot a Node.js-ről: Itt van egy a PluralSight-on, és persze egy az Udemy-n.
Interaktív tanulás. Tekintse meg azokat az ingyenes és fizetős forrásokat, amelyek segítségével interaktív leckék és gyakorlatok segítségével tanulhatja meg a Node.js-t. Az egyik legnépszerűbb a The Art of Node.
Community. Tekintse meg a közösségi Node.js projektek hivatalos listáját. Egy gyors tipp: Kutasson a Facebook-csoportok és közösségek után a saját területén/első nyelvén. És persze tekintse meg a Node.js közösségeket a Reddit-en, egy címkét a StackOverflow-n, és a témát a Quora-n.
Node.js vs Ruby on Rails vs Django vs Symfony
Nem sok olyan technológia van, amely versenyezhet a Node.js népszerűségével vagy piaci keresletével. Ha azonban megnézzük a szerveroldali programozás alternatíváit, legalább három további fényes csillagot látunk az égen. Ez a Ruby on Rails, a Django és a Symfony. Lássuk, vajon megállják-e a helyüket a Node.js előnyei mellett, és osztoznak-e a hátrányain.
A Node.js, a Rails, a Django és a Symfony statisztikáinak összehasonlítása
Forrás: Forrás: StackShare
A Ruby on Rails az egyszerű, de véleményes nyelvéről és a gems – a Rails saját ökoszisztémája, az egyedi csomagok – elérhetőségéről ismert. Maga a Ruby egy intuitív és kezdőbarát nyelv, támogató és elkötelezett közösséggel, amely hozzájárul a RubyGems kódjához. A Rails gyors fejlesztésre és prototípusok készítésére készült, bár olyan márkák használják sikeresen, mint a GitHub, a Twitter és az Airbnb, ami bizonyítja a széleskörű felhasználási lehetőségeket. Az adatmigrációs funkcionalitása különösen lenyűgöző – a Node.js-től eltérően, amely további csomagokat használ, a Rails már rendelkezik egy olyan funkcióval, amely lehetővé teszi az adatbázis egyszerű és következetes manipulálását.
Mikor érdemes a Rails-t a Node.js helyett használni? A Rails nem tud versenyezni a Node teljesítményével és skálázhatóságával, azonban a gyors fejlesztéshez a Rails jobb választás lehet. A Node.js ugyanis harmadik féltől származó modulokat használ, hogy elérje ezt a fejlesztési sebességet, a Ruby azonban mindezt rendhagyó módon. Ami a nyelvet illeti, egyik eszköz sem rendelkezik egyértelmű előnnyel – míg a Node.js iránt nagy a kereslet, de alacsony a kínálat, addig a Ruby tehetségpontja kezdetben kisebb.
A Django egy Pythonon alapuló webes keretrendszer, a StackOverflow adatai szerint a leggyorsabban növekvő programozási nyelv. A határidőkkel rendelkező maximalisták eszközeként forgalmazzák, és azért hozták létre, hogy a lehető leggyorsabban és a lehető legstrukturáltabb, legbiztonságosabb és legkönnyebben érthető módon készítsenek alkalmazásokat. A Django a Python mellett enyhébb tanulási görbének is számít. Míg a Node.js-szel való munka széleskörű JavaScript-ismeretet igényel, addig a Django egy “elemeket tartalmazó” technológia. Beépített admin panellel rendelkezik, amellyel könnyen frissítheti és karbantarthatja az adatbázisokat és sablonokat, így felgyorsíthatja munkáját.
Mikor érdemes a Django-t használni a Node.js helyett? A Node.jshez képest a Django egy kezdőbarát eszköz. Magán a nyelven kívül nincs igazi ok arra, hogy az egyiket a másik helyett válasszuk. Ez inkább a JavaScript vagy a Python iránti kényelem és tapasztalat kérdése, mint a konkrét felhasználási eseteké.
A Symfony egy PHP keretrendszer, ami automatikusan több mint 20 éves dokumentációt és egy hatalmas, aktív közösséget biztosít számára. A web több mint 80 százaléka PHP-vel működik, olyan projektek, mint a Facebook, a Baidu vagy bármely más weboldal, WordPressen futnak. Bár a Symfony csak egy a piacon lévő PHP keretrendszerek közül, lenyűgözően stabil, skálázható, és jól működik nagyszabású projektekhez. Emellett egy Twig templating motort is használ, amely sok PHP-alapú tartalomkezelő rendszerhez hasonlóan működik.
Mikor érdemes a Symfony-t használni a Node.js helyett? A Symfony természetesen támogatja a CMS-ek olyan funkcióit, mint a sablonok és az admin műszerfalak, ami lehetővé teszi blogok, híroldalak és e-kereskedelmi áruházak üzemeltetését. Néhány példa: Yahoo Answers, Dailymotion és National Geographic.
Make Node.js Shine
A felsorolt Node.js előnyök és hátrányok mellett nyilvánvaló, hogy a technológia nem egy csodafegyver. De a Java, a .Net keretrendszer vagy a PHP sem az. Mégis vannak olyan konkrét esetek, amikor a felsorolt technológiák mindegyike a legjobban teljesít. A Node.js esetében ezek az intenzív I/O-val rendelkező, sebességet és skálázhatóságot igénylő valós idejű alkalmazások.
Ezek lehetnek közösségi hálózatok, játékalkalmazások, élő csevegések vagy fórumok, valamint tőzsdei szoftverek vagy hirdetési szerverek, ahol a sebesség a minden. A gyors és skálázható Node.js a választás technológiája az adatintenzív, valós idejű IoT-eszközök és -alkalmazások számára.
A Node.js a JavaScriptet a webes alkalmazásfejlesztés teljes körű technológiájává tette. Nem blokkoló architektúrájának köszönhetően a Node.js jól működik videó és hang kódolására és sugárzására, több fájl feltöltésére és adatfolyamra. Ez utóbbi rendkívül hasznos lehet az utazási iparági szoftverek esetében, ahol különböző szállítók különböző API-iból kell adatokat beszerezni.
A Node.js-t az utóbbi időben aktívan használják a vállalati szintű szoftverekben. Bár még mindig sok vita folyik erről, számos nagyvállalat és globális szervezet, például a Capital One és a NASA már alkalmazza a Node.js-t. A vállalati Node.js ökoszisztéma pedig tovább érik olyan eszközökkel, mint az IBM API Connect, a Triton by Joyent, az N|Solid by NodeSource, a Red Hat OpenShift, a Trace by RisingStack és mások.
Ez a bejegyzés a “The Good and the Bad” sorozatunk része. A legnépszerűbb technológiák előnyeiről és hátrányairól bővebben a sorozat többi cikkében olvashat:
A Xamarin mobilfejlesztés jó és rossz tulajdonságai
A JavaScript full stack fejlesztés jó és rossz tulajdonságai
A ReactJS és React Native jó és rossz tulajdonságai
A Swift programozási nyelv jó és rossz tulajdonságai
A .NET Framework programozás
Az Angular fejlesztés jó és rossz tulajdonságai
A Selenium tesztautomatizálási eszköz jó és rossz tulajdonságai
A Android alkalmazásfejlesztés jó és rossz tulajdonságai