Node.js - Nakolik se používá a rychlost vývoje rubrika: Programování: JavaScript

1 j.tetek
položil/-a 19.5.2013

Dobrý den,
Chtěl bych se zeptat, nakolik se v dnešní době používá na vývoj webových aplikací Node.js a hlavně, jak rychle se vyvíjí v Node.js. Jde mi o porovnání s PHP nebo něčím takovým. Příjde mi totiž, že v Node.js se musí udělat spousty zbytečností jako třeba routing, server a podobně, což v PHP není. Zase mi ale příjde, že pokud by se vyvíjela větší aplikace, tak by to v Node.js mohlo zabrat kratsí dobu.
Když to shrnu: Má cenu se Node.js učit?

odkaz
10 jiri.knesl
odpověděl/-a 19.5.2013

V node.js se buduje tipuju o 2 řády méně aplikací, než v PHP. Není to průmyslový standard, ať už vývojář dělá malé webovky, e-shop nebo větší redakční systém, v PHP má spoustu možností, jak použít něco, co už existuje.

Na druhou stranu tohle vůbec nevadí. Ono totiž má node.js zase svoje výhody, situace, kdy se PHP použít pořádně nedá.

Kdy bych použil node.js?

  • u aplikace, která je intenzivní na I/O operace
  • pokud potřebuju posílat push state
  • pokud nějakou náhodou můžu sdílet kód na serveru (běžný argument pro node.js, v praxi využívaný jen u malé části zdrojáku)
  • pokud potřebuješ vysokou rychlost (běžný argument, na druhou stranu běžný servřík utáhne třeba 500 podnikových prezentací v PHP, pokud nedělám něco doopravdy intenzivního na výpočet, výhoda se moc neprojeví

Proč nepoužít node.js na všechno, když má tolik výhod?

  • obtížně se debugguje (chybové hlášky v PHP jsou čitelnější, než chybové hlášky v node.js)
  • není na všech hostinzích - vyžaduje vlastní VPS nebo něco jako Heroku. Problém není v ceně, ale v tom, že se musím učit něco navíc
  • není tak velká komunita, která by pomohla - na druhou stranu JS celkem ovládá leckdo, takže je to lepší, než použít ještě něco exotičtějšího
  • když ti aplikace vyroste a budeš chtít někoho najmout, opravdových vývojářů v JS je málo, těžko pro sebe někoho najdeš a když už, tak vůbec ne levně
  • produktivita jednotlivce je zhruba srovnatelná, možná o trošku nižší, protože vyvíjet v PHP, které dostane request, pošle response a zahodí data je snažší, než vyvíjet nonstop běžící proces

Sám mám v produkci několik aplikací v node.js a tunu v PHP. A popravdě - dá se to i dobře míchat.

Napiš většinu v PHP nebo třeba Pythonu, Ruby, kde jsou skvěle odladěné frameworky. A všechny části používající push state nebo jsou intenzivní na I/O dej do node. Komunikace může probíhat přes nějaké společné místo (co vím od lidí, používají SQL databázi, MQ fronty, ale šlo by použít i memcache nebo redis).

Komentáře

  • skliblatik : ...chybové hlášky v PHP jsou čitelnější, než chybové hlášky v node.js... To má být vtip? "Tady jsem už to fakt nerozdejchal" versus výpis zásobníku? 20.5.2013
  • Miroslav Bajtoš : @skliblatik: Potíže začínají, když k chybě dojde až v několikátém event-handleru. Výpis zásobníku ti pak nestačí: například když SQL server odmítne tvůj dotaz, tak uvidíš zásobník někam po událost "dostali jsme data ze socketu". Bohužel už neuvidíš, která tvoje funkce ten dotaz poslala, protože poslání dotazu skončilo zaregistrováním event handleru (callbacku). Problém se dá obejít pomocí tzv. "long stack trace" přes externí moduly (např. longjohn), to si ovšem vybere vysokou daň na výkonnosti aplikace. 21.5.2013

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.