Programování

6 věcí, které byste měli vědět o Node.js

JavaScript žere svět a nové nástroje a vylepšení přicházejí závratným tempem. S Node.js, otevřeným zdrojovým runtime systémem, který v roce 2009 vynalezl Ryan Dahl, se tento dosah rozšířil i na stranu serveru.

Node.js se stal velmi populárním a kodéry ho všude používají k vytváření API a vytváření nové matice interoperability přes internet. Joyent je od začátku hlavním sponzorem Node.js. Na tomto týdenním fóru New Tech Forum Ben Wen, viceprezident produktového marketingu společnosti Joyent, popisuje šest věcí, které byste měli vědět o fenoménu otřásajícím backendovým vývojem. - Paul Venezia

Node.js je běhový systém pro vytváření (většinou) aplikací na straně serveru. Je nejlépe známý jako populární prostředek pro programování JavaScriptu k vytváření webových API v reálném čase.

Ale Node.js není framework JavaScriptu; skutečně několik autorů napsalo vynikající rámce speciálně pro Node.js, včetně Express.js, Restify.js a Hapi.js. Co přesně si tento fenomén nachází cestu do webových aplikací, obalů operačních systémů, mikrokontrolérů a robotů?

V jádru je Node.js odizolovaný, vysoce přizpůsobitelný serverový stroj - proto-server, pokud chcete - protože po vybalení z krabice nedělá nic, dokud jej nenastavíte. Tento proto-server zpracovává ve smyčce a je připraven přijímat a reagovat na požadavky. Kterýkoli z těchto požadavků může sám iniciovat další požadavky na nějakou jinou část systému, například na čtení souboru z disku nebo na odeslání signálu k roztočení motoru na rameni robota. Tato smyčka, známá jako smyčka událostí, je součástí „běhového prostředí“.

Node.js je dodáván s konektory a knihovnami workhorse, jako jsou ty, které se týkají HTTP, SSL, komprese, přístupu k souborovému systému a nezpracovaných TCP a UDP. JavaScript, který je již vyladěn pro prostředí smyčky událostí webového prohlížeče pro grafické uživatelské rozhraní a síťové události, je skvělým jazykem pro propojení těchto konektorů. Konektory na smyčku událostí můžete zacvaknout téměř stejně snadno jako díly Lego dohromady. To vám umožní vytvořit jednoduchý, dynamický webový server v několika řádcích JavaScriptu.

Stručně řečeno, Node.js je běhový systém, který usnadňuje vytváření sítě nebo jiných aplikačních serverů řízených událostmi. Zde je šest věcí, které o tom potřebujete vědět.

1. JSON vyhrál

JSON (JavaScript Object Notation) je praktický, složený a velmi populární formát pro výměnu dat. JSON umožnil vývojářům JavaScriptu rychle vytvářet API a podporovat interoperabilitu ve velkém měřítku - klíčový cíl pro kodéry Node.js. Ostrou jednoduchost JSON lze vyjádřit pouze v pěti železničních parsovacích diagramech, zejména bez rozpačitého preference XML a jeho intrikujících přátel (SOAP, XSD, WS- *, RELAX-NG a jejich nekonečných schůzí výborů).

JSON a JavaScript si navzájem posílily význam. V raných dobách webu bylo nutné s dynamickými daty v prohlížeči manipulovat, filtrovat je a provozovat pomocí jediného rozumně srozumitelného dostupného jazyka bez pluginu: JavaScriptu. Bez ohledu na původní formát prezentovatelný v síti bylo nutné data zařadit do objektu JavaScriptu. Závislost na JSON pro obecný popis dat vedla k dokumentově orientovaným databázím NoSQL, jako jsou MongoDB a CouchDB. Dnes je to všechno JSON.

2. JavaScript je všude

JavaScript je nepředvídatelný, objektově orientovaný jazyk podobný jazyku C. Je to jediná volba pro vývoj aplikací v prohlížeči. Každý týden je vývojářům woo představen nový rámec. A s Node.js se JavaScript přelil na server. Konkurenční implementační týmy poháněly tlumočníky JavaScriptu vpřed, takže motor V8 společnosti Google je úctyhodně rychlý - dostatečně rychlý na to, aby se nacházel v jádru Node.js.

JavaScript má také interní schopnost zpracovávat mechanismus smyčky událostí přímo. Tuto schopnost mají i jiné jazyky, které používají jejich vlastní systémy s událostmi. Python má Twisted a Ruby má EventMachine. Ale z důvodu historie jsou oba tyto systémy smyček událostí vybaveny relativně snadnými způsoby, jak udělat určitý druh chyby výkonu, zatímco JavaScript zůstává relativně bez tohoto nebezpečí.

JavaScript také běží napříč mnoha prostředími OS a historicky je musel podporovat v prohlížeči. To spolu s knihovnou libuv, která pomáhá odstranit některé rozdíly v operačním systému, znamená, že Node.js má širokou stopu.

Ale největší síla pro migraci JavaScriptu na stranu serveru je lidská. Programátoři musí méně přepínat mezi kontextovým webovým prohlížečem a serverem. Existuje dokonce úsilí o sjednocení prostředí mezi klientem a serverem, aby kód mohl běžet stejně dobře v obou umístěních, což dále zjednodušuje model a vede ke zvýšení produktivity.

3. Sdílení je podporováno

Étos komunity Node.js je „sdílet radostně“. Je děsivě snadné sdílet balíčky knihovního kódu - technicky, kulturně, procedurálně a legálně. Správce balíčků uzlů je součástí Node.js a rozrostl se na úložiště téměř 50 000 balíčků, takže je pravděpodobné, že jiný vývojář již zabalil řešení vašeho problému nebo dokonce i méně obvyklé.

Filozofií oboru názvů Node.js je v podstatě absence jednoho, což umožňuje každému autorovi publikovat pod nepoužívaným názvem modulu ve sdíleném veřejném úložišti. Sdílení kódu pod licencí MIT open source je v komunitě vysoce doporučeno, což také umožňuje z hlediska duševního vlastnictví křížové opylování kódu relativně bez obav (a bez právníků). Nakonec se komunita velmi angažuje ve vázání zajímavých knihoven C, jako je počítačové vidění (OpenCV) a knihovna optických znaků Tesseract s otevřeným zdrojem. Ten druhý například umožňuje možné víkendové projekty, jako je Imdex, které zpracovávají obrázky z webu, aby je bylo možné automaticky vyhledávat v písemném obsahu.

4. Správce balíků uzlů funguje široce

Když už mluvíme o správě závislostí knihoven, zaslouží si být vyvolán Správce balíčků uzlů. Node Package Manager je kořenem téměř všech systémů nasazení pro Node.js a je základem mnoha poskytovatelů PaaS (platforma jako služba) pro Node.js, což ve skutečnosti usnadňuje přesun menších aplikací mezi poskytovateli. Jeho jednoduchá a spolehlivá správa balíků umožnila, aby ekosystém Node v nedávné historii rostl mimořádně dobře, až do té míry, že základní veřejná služba se nyní musí škálovat na další úroveň.

5. Minimalismus „Baterie nejsou součástí dodávky“

Aplikace Node.js a samotné jádro Node.js jsou rozděleny na malé moduly, které jsou složeny a sdíleny. Každý balíček a nástroj lze pevně vymezit a vytvořit tak, aby byl snadno ovladatelný. Ty pak mohou být pečeny společně - často bez přílišného zbytečného hnětení. Nízkobariérový a bezstarostný charakter vytváření modulu také podporuje experimentování v komunitě a v populaci balíčků je docela dost překrývání a experimentování. Když je proveden dobře, každý balíček obvykle zpracovává jeden úkol (např. Node-optimist.js: 'light-weight [command-line] option parsing').

6. Přístrojové vybavení

Nakonec je Node.js dobře vybaven pro produkční použití. To znamená, že existují nástroje, které pomohou aplikaci přinést plnou připravenost a výkon výroby. Stejně jako u jakékoli technologie zrání existují oblasti, kde by mohla být užitečná více dokumentace, nástrojů a osvědčených postupů. Ale jak Node.js směřuje k dalšímu hlavnímu vydání, je na docela solidních základech.

Uzel v kontextu

Pokud znáte JavaScript, Node.js je jemný náběh na asynchronní výpočty pro web. A právě tak se stane, že Node.js je vhodný k řešení webových problémů přesně tohoto typu: výzvy integrace a lepení s kaskádovými voláními API po API.

Kde Node.js nefunguje tak dobře? Není to úplně vhodné v místech, kde bude pozdržen výpočet s jedním vláknem, jako některé druhy postupné aproximace nebo klasifikace. V těchto případech je pro Node.js efektivnější upustit od požadavku do nezávislé knihovny, která je věnována úkolu, kde jej lze distribuovat mezi stovky nebo tisíce procesorů.

Node.js rychle dospívá a je nasazován ve stále více a více kritických systémech a systémech kritických z hlediska příjmů, jako jsou infrastruktury eCommerce Black Friday. Je snadné začít s Node.js, a přesto je Node.js dostatečně hluboký, aby zvládl moderní webové složitosti. Pokud vytváříte web nové generace - zejména rozhraní API pro mobilní a webovou integraci - nebo pokud vytváříte něco nového, co závisí na samotných základních službách, Node.js je běhový systém, který by pro vás mohl velmi dobře fungovat.

Nové technologické fórum poskytuje prostředky k prozkoumání a diskusi o nově vznikajících podnikových technologiích v nebývalé hloubce a šíři. Výběr je subjektivní, založený na našem výběru technologií, které považujeme za důležité a pro čtenáře nejzajímavější. nepřijímá marketingové materiály ke zveřejnění a vyhrazuje si právo upravovat veškerý přispěný obsah. Všechny dotazy zasílejte na [email protected]

Tento článek „6 věcí, které byste měli vědět o Node.js“, byl původně publikován na .com. Nejnovější zprávy o obchodních technologiích najdete na Twitteru na .com.