Programovanie

6 vecí, ktoré by ste mali vedieť o Node.js

JavaScript žerie svet a nové nástroje a vylepšenia prichádzajú krkolomným tempom. Vďaka Node.js, otvorenému zdrojovému runtime systému, ktorý v roku 2009 vymyslel Ryan Dahl, sa tento dosah rozšíril aj na stranu servera.

Node.js sa stal veľmi populárnym. Kodéry ho všade používajú na vytváranie rozhraní API a budovanie novej matice interoperability na internete. Joyent je od začiatku hlavným sponzorom Node.js. Na tohtotýždňovom Novom technickom fóre Ben Wen, viceprezident produktového marketingu spoločnosti Joyent, predstavuje šesť vecí, ktoré by ste mali vedieť o fenoméne, ktorý otriasol vývojom backendu. - Paul Venezia

Node.js je runtime systém na vytváranie (väčšinou) aplikácií na strane servera. Je najlepšie známy ako populárny prostriedok pre kódovačov JavaScriptu na vytváranie webových rozhraní API v reálnom čase.

Node.js ale nie je rámec JavaScriptu; Niekoľko autorov skutočne napísalo vynikajúce rámce špeciálne pre Node.js, vrátane Express.js, Restify.js a Hapi.js. Čo presne si tento fenomén nachádza cestu do webových aplikácií, obalov operačných systémov, mikrokontrolérov a robotov?

V jadre je Node.js orezaný vysoko prispôsobiteľný serverový modul - ak chcete, proto-server - pretože po vybalení z krabice neurobí nič, kým ju nenastavíte. Tento proto-server pracuje v slučke a je pripravený prijať a odpovedať na požiadavky. Každá z týchto požiadaviek môže sama iniciovať ďalšie požiadavky na inú časť systému, napríklad na načítanie súboru z disku alebo na odoslanie signálu na roztočenie motora na ramene robota. Táto slučka, známa ako slučka udalostí, je časťou „za behu“.

Node.js sa dodáva s konektormi a knižnicami pracovného koňa, napríklad s protokolom HTTP, SSL, kompresiou, prístupom k súborovému systému a nespracovanými protokolmi TCP a UDP. JavaScript, ktorý je už vyladený pre prostredie smyčky udalostí webového prehliadača pre grafické používateľské rozhranie a udalosti v sieti, je skvelým jazykom na zapojenie týchto konektorov. Konektory na slučku udalostí môžete zacvaknúť takmer rovnako ľahko, ako jednotlivé diely lega. Týmto spôsobom môžete vytvoriť jednoduchý a dynamický webový server iba v niekoľkých riadkoch kódu JavaScript.

Stručne povedané, Node.js je runtime systém, ktorý umožňuje ľahké budovanie siete alebo iných aplikačných serverov riadených udalosťami. Tu je šesť vecí, ktoré o ňom potrebujete vedieť.

1. Spoločnosť JSON vyhrala

JSON (JavaScript Object Notation) je praktický, zložený a veľmi populárny formát výmeny údajov. Spoločnosť JSON umožnila vývojárom JavaScriptu rýchlo zostaviť API a podporiť interoperabilitu vo veľkom rozsahu - kľúčový cieľ pre kódovačov Node.js. Prudkú jednoduchosť JSON možno vyjadriť iba v piatich diagramoch syntaktickej analýzy železníc, najmä bez vedomého preťaženia XML a jeho intrikujúcich priateľov (SOAP, XSD, WS- *, RELAX-NG a ich nekonečné schôdze výborov).

JSON a JavaScript si navzájom posilnili dôležitosť. V začiatkoch webu bolo treba s dynamickými údajmi v prehliadači manipulovať, filtrovať ich a prevádzkovať pomocou jediného primerane zrozumiteľného dostupného jazyka bez doplnkov: JavaScriptu. Bez ohľadu na pôvodný formát prezentovateľný v sieti bolo potrebné dáta spojiť do objektu JavaScript. Závislosť od JSON pri popise údajov na všeobecné účely spôsobila vznik dokumentovo orientovaných databáz NoSQL, ako sú MongoDB a CouchDB. Dnes je to všetko JSON.

2. JavaScript je všade

JavaScript je svojrázny, objektovo orientovaný jazyk podobný jazyku C. Je to jediná voľba pre vývoj aplikácií v prehliadači. Každý týždeň je vývojárom woo predstavený nový rámec. A s Node.js sa JavaScript rozšíril na server. Konkurenčné implementačné tímy posunuli interpretov JavaScriptu vpred, takže motor V8 spoločnosti Google je úctyhodne rýchly - dosť rýchly na to, aby sa nachádzal v jadre Node.js.

JavaScript má tiež vnútornú schopnosť priamo manipulovať s mechanizmom cyklu udalostí. Túto schopnosť majú aj iné jazyky, ktoré používajú ich vlastné systémy s výskytom udalostí. Python má Twisted a Ruby má EventMachine. Ale z dôvodu histórie sú oba tieto systémy cyklov udalostí vybavené pomerne ľahkými spôsobmi, ako urobiť konkrétny druh chyby vo výkone, zatiaľ čo JavaScript zostáva relatívne bez tohto nebezpečenstva.

JavaScript tiež funguje v mnohých prostrediach OS a historicky ich musel podporovať v prehliadači. To spolu s knižnicou libuv, ktorá pomáha odstraňovať niektoré rozdiely v operačnom systéme, znamená, že súbor Node.js má rozsiahlu stopu.

Ale najväčšia sila pre migráciu JavaScriptu na stranu servera je ľudská. Programátori musia menej prepínať medzi kontextovým webovým prehliadačom a serverom. Existuje dokonca úsilie o zjednotenie prostredí medzi klientom a serverom, aby kód mohol bežať rovnako dobre v obidvoch umiestneniach, čo ďalej zjednodušuje model a vedie k zvýšeniu produktivity.

3. Podporuje sa zdieľanie

Étos komunity Node.js je „zdieľať radostne“. Zdieľanie balíkov knižničného kódu je desivo ľahké - technicky, kultúrne, procedurálne a legálne. Správca balíkov uzlov je súčasťou balíka Node.js a rozrástol sa na úložisko takmer 50 000 balíkov, takže je pravdepodobné, že iný vývojár už zbalil riešenie vášho problému alebo dokonca niektoré menej bežné.

Filozofiou priestoru názvov Node.js je v podstate absencia jedného, ​​ktorý umožňuje každému autorovi publikovať pod nepoužitým názvom modulu v zdieľanom verejnom úložisku. Zdieľanie kódu pod licenciou open source MIT sa v komunite vysoko odporúča, čo tiež umožňuje krížové opelenie kódu z hľadiska duševného vlastníctva relatívne bez obáv (a bez právnikov). Nakoniec sa komunita intenzívne venuje viazaniu zaujímavých knižníc typu C, ako je počítačové videnie (OpenCV) a knižnica optických znakov Tesseract s otvoreným zdrojom. Táto možnosť napríklad umožňuje víkendové projekty ako Imdex, ktoré spracúvajú obrázky z webu, aby ich bolo možné automaticky vyhľadávať po napísanom obsahu.

4. Správca balíkov uzlov funguje všeobecne

Keď už hovoríme o správe závislostí knižnice, zaslúži si byť zavolaný Správca balíkov uzlov. Node Package Manager je koreňom takmer všetkých implementačných systémov pre Node.js a je základom mnohých poskytovateľov PaaS (platforma ako služba) pre Node.js, čo v skutočnosti uľahčuje presun menších aplikácií medzi poskytovateľmi. Jeho jednoduchá a spoľahlivá správa balíkov umožnila ekosystému Node v poslednej histórii mimoriadne dobre rásť až do tej miery, že základná verejná služba sa teraz musí rozšíriť na ďalšiu úroveň.

5. Minimalizmus „batérie nie sú súčasťou balenia“

Aplikácie Node.js a samotné jadro Node.js sú rozdelené na malé moduly, ktoré sa skladajú a zdieľajú. Každý balík a nástroj môžu byť pevne ohraničené a vytvorené tak, aby sa s nimi dalo manipulovať. Tieto sa potom dajú upiecť spolu - často bez prílišného zbytočného hnetenia. Nízkobariérový a bezstarostný charakter vytvorenia modulu podporuje aj experimentovanie v komunite a v populácii balíkov je dosť veľa prekrývania a experimentovania. Ak je každý balík dobre vykonaný, zvyčajne zvládne jednu úlohu (napr. Node-optimist.js: 'light-weight [command-line] option parsing').

6. Prístrojové vybavenie

Nakoniec je Node.js dobre vybavený na produkčné použitie. To znamená, že existujú nástroje, ktoré pomáhajú dosiahnuť úplnú pripravenosť a výkonnosť aplikácie. Ako každá technológia zrenia, aj tu existujú oblasti, kde by mohla byť užitočná viac dokumentácie, nástrojov a osvedčených postupov. Ale keďže Node.js smeruje k svojmu ďalšiemu veľkému vydaniu, je na celkom stabilnej úrovni.

Uzol v kontexte

Ak viete JavaScript, Node.js je jemný nábeh na asynchrónne výpočty pre web. A tak sa stane, že Node.js je vhodný na riešenie webových problémov presne tohto typu: výzvy integrácie a lepenia s kaskádovými hovormi API po API.

Kde Node.js nefunguje tak dobre? Nie je to úplne vhodné v miestach, kde bude pozdržanie výpočtu s jedným vláknom, ako sú niektoré druhy postupnej aproximácie alebo klasifikácie. V týchto prípadoch je pre Node.js efektívnejšie odovzdať požiadavku nezávislej knižnici určenej pre danú úlohu, kde ju možno distribuovať medzi stovky alebo tisíce procesorov.

Node.js rýchlo dospieva a nasadzuje sa do čoraz viac kriticky dôležitých systémov a systémov kritických z hľadiska príjmov, ako sú napríklad infraštruktúry čierneho piatku eCommerce. Začať s Node.js je ľahké, a napriek tomu je Node.js dostatočne hlboký na to, aby zvládol moderné zložitosti webu. Ak budujete svoj web novej generácie - najmä API pre mobilnú a webovú integráciu - alebo ak vytvárate niečo nové, čo závisí od samotných základných služieb, Node.js je runtime systém, ktorý by pre vás mohol veľmi dobre fungovať.

Nové technologické fórum poskytuje prostriedky na preskúmanie a diskusiu o vznikajúcich podnikových technológiách v nebývalej hĺbke a šírke. Výber je subjektívny, založený na našom výbere technológií, ktoré považujeme za dôležité a pre čitateľov najväčší záujem. neprijíma marketingové záruky na zverejnenie a vyhradzuje si právo upravovať všetok prispievaný obsah. Všetky otázky posielajte na adresu [email protected].

Tento článok „6 vecí, ktoré by ste mali vedieť o Node.js“, bol pôvodne publikovaný na .com. Najnovšie správy o obchodných technológiách nájdete na Twitteri na serveri .com.

$config[zx-auto] not found$config[zx-overlay] not found