JavaScript na serveru: Patří budoucnost Node.js?

node.js logo

LinkedIn, eBay, Yahoo!, Mozilla či Walmart a mnoho dalších staví své aplikace na Node.js. Proč si vybrali právě mladou platformu Node.js, k čemu se Node.js hodí a odpovědi na další otázky jsou náplní úvodního článku ze seriálu o Node.js.

Seriál: Node.js - s JavaScriptem na serveru (13 dílů)

  1. JavaScript na serveru: Začínáme s Node.js 23.11.2010
  2. JavaScript na serveru: Patří budoucnost Node.js? 21.9.2012
  3. JavaScript na serveru: Architektura a první Hello World 5.10.2012
  4. JavaScript na serveru: moduly a npm 12.10.2012
  5. JavaScript na serveru: začínáme programovat e-shop 19.10.2012
  6. JavaScript na serveru: MongoDB, Mongoose a AngularJS 26.10.2012
  7. JavaScript na serveru: Testování a kontinuální integrace 2.11.2012
  8. JavaScript na serveru: REST API 9.11.2012
  9. JavaScript na serveru: implementace REST API 16.11.2012
  10. JavaScript na serveru: nástroje a dokumentace 23.11.2012
  11. Začínáme s AngularJS 30.11.2012
  12. AngularJS direktivy a testování 7.12.2012
  13. JavaScript na serveru: CoffeeScript a šablonovací systémy 14.12.2012

Pokud jste se náhodou dosud nesetkali s Node.js, přečtěte si úvodní článek od Jakuba Nešetřila, kde se dozvíte základní informace o architektuře Node.js. Článek však vyšel před 2 roky a od té doby se mnohé změnilo:

  1. Od konce roku 2011 je k dispozici verze pro Windows s klasickým instalátorem, není tedy potřeba používat Cygwin, jedním kliknutím nainstalujete vše, co potřebujete.
  2. Node package manager (npm) není potřeba pro Windows instalovat zvlášť, nainstaluje se současně s Node.js.
  3. Jakub popisoval nestabilní verzi 0.2, dnes je k dispozici verze 0.8.9 a v blízké budoucnosti můžeme očekávat vydání první verze.

Proč by vás mohl Node.js zaujmout?

Především umožňuje používat JavaScript na serveru. Díky tomu získal velmi rychle značnou popularitu, protože s klientským skriptováním se setkal každý tvůrce webových aplikací, a tak je zde početná základna potenciálních programátorů, kteří mohou s Node.js začít bez toho, aby trávili hodiny studiem nového jazyka.

S předchozím bodem souvisí i fakt, že značná část knihoven používaných pro klientský JavaScript je díky Node.js možné používat i na serveru. Hledáte něco na práci s datem? Použijte knihovnu Moment.js všude, u klienta i na serveru.

JavaScript je dnes všude. Používáme ho pro komunikaci s NoSQL databází, pro ukládání dat využíváme formát JSON (= JavaScript object notation), v JavaScriptu můžeme psát mobilní aplikace pro všechny současné mobilní platformy a aplikace v JavaScriptu je možné psát i pro Windows 8. Díky Node.js je možné tedy používat jeden jazyk, jeden styl, jedny knihovny kódu všude.

Další významný faktor rostoucí popularity Node.js je komunita. V roce 2011 bylo k dispozici 1800 modulů, které řešily vše důležité, co tvůrce aplikace potřeboval. O rok později je jich k dispozici už 15 tisíc! Jedním příkazem můžete jakýkoliv z nich nainstalovat a ihned používat. Řešili jste někdy přihlašování přes  Facebook, Twitter či Google ve své aplikaci? V Node.js máte k dispozici knihovny Passport či Everyauth a přihlašování s nimi zprovozníte během několika minut.

Na webu npmjs.org můžete procházet moduly podle jejich oblíbenosti uživateli.

Všechny moduly jsou dostupné na npmjs.org, můžete si prohlédnout ty, které jsou nejpoužívanější a nejoblíbenější. Téměř všechny jsou dostupné na Githubu. Mimochodem, Node.js je na Githubu po Twitter Bootstrapu druhý nejsledovanější projekt.

Významná je také podpora velkých firem. Vývoj je sponzorován firmou Joyent. Yahoo! svůj framework Mojito staví na HTML5, CSS3 a Node.js. Dále v článku najdete odkaz na zkušenosti od LinkedIn, který na Node.js staví svou mobilní verzi. Node.js je k dispozici u Windows Azure, pro své své projekty ho používá i eBay. Mnoho dalších projektů je možné nalézt na wiki projektu na Githubu.

Pro jaké typy projektů se Node.js hodí a pro jaké nikoliv?

Felix Geisendörfer sepsal základní případy užití, kde Node.js najde své uplatnění a také případy, kde byste měli použít jinou technologii. Node.js je velmi vhodné použít, pokud chcete vytvářet tyto typy projektů:

  1. Aplikace s RESTful/JSON API
  2. Single-page aplikace (např. ve spolupráci s vynikajícím frameworkem AngularJS)
  3. Real-time aplikace (Socket.io, frameworky Derby.js či Meteor)

Naopak se Node.js nehodí pro projekty, které jsou velmi náročné na CPU. Jako příklad Felix uvádí software pro kódování videa.

Kdo Node.js používá? Jaké jsou zkušenosti s Node.js v produkci?

Za všechny vyberu jeden příklad, a to mobilní verzi od LinkedIn. Dříve byla jejich mobilní aplikace napsána v Ruby on Rails, po přechodu na Node.js se značně snížil počet serverů, který bylo pro hostování potřeba:

Zlepšení výkonu po přechodu k Node.js bylo ohromující. Dříve jsme používali 15 serverů s 15 virtuálními servery na každém fyzickém stroji. Po přechodu k Node.js jsou potřeba pouze čtyři virtuální servery, které zvládnou dvojnásobný provoz.

Co dále?

Během několika následujících týdnů se můžete na Zdrojáku těšit na seriál, který vás provede tím nejdůležitějším, co potřebujete k tomu, abyste mohli začít psát aplikace v Node.js. Po úvodních dílech věnujících se základům začneme programovat aplikaci, na které si ukážeme typické využití Node.js. Půjde o javascriptovou single-page aplikaci s REST architekturou s využitím populárního klientského MVC frameworku AngularJS. Na této aplikaci si také ukážeme celé workflow práce s Node.js včetně jednotkového testování a deploymentu na server.

V dalším díle seriálu se dozvíte o něco málo o architektuře Node.js a o asynchronním programování.

Jakub pracoval na několika zajímavých projektech, za nejvýznamnější považuje vytvoření e-commerce řešení Shopio.cz. Poslední rok se plně věnuje Node.js, frameworku AngularJS a NoSQL databázím.

Čtení na léto

Jaké knihy z oboru plánujete přečíst během léta? Pochlubte se ostatním ve čtenářské skupině Zdrojak.cz na Goodreads.com.

Komentáře: 29

Přehled komentářů

Eda Jen tak dál
Jakub Mrozek Re: Jen tak dál
Dundee5 Re: Jen tak dál
noJavaScript fuj nepouzivajte JS!
Jakub Mrozek Re: fuj nepouzivajte JS!
K47 Re: fuj nepouzivajte JS!
balik Re: fuj nepouzivajte JS!
Radek Miček Re: fuj nepouzivajte JS!
balik Re: fuj nepouzivajte JS!
Radek Miček Re: fuj nepouzivajte JS!
Riff Re: fuj nepouzivajte JS!
Radek Miček Re: fuj nepouzivajte JS!
Riff Re: fuj nepouzivajte JS!
blizz Re: fuj nepouzivajte JS!
Riff Re: fuj nepouzivajte JS!
M3dard Juhů
chleba Nahrada za node.js
langpa CoffeeScript ne hned na začátku
Jakub Mrozek Re: CoffeeScript ne hned na začátku
Širo Ja JavaScript milujem
langpa Re: Ja JavaScript milujem
Širo Re: Ja JavaScript milujem
vidya Re: Ja JavaScript milujem
Michal Zahradníček Re: Ja JavaScript milujem
Defiler Moc díky
Inkvizitor Re: Moc díky
Martin Hassman Re: Moc díky
Inkvizitor Re: Moc díky
starter Ruby srovnání
Zdroj: http://www.zdrojak.cz/?p=3707