Node.js & Express.js vs. Ruby on Rails

Dnes jsem si myslel, že se podívám na používání Express JS a Node JS jako backendu, oproti použití Ruby on Rails. Mluvil jsem s některými společnostmi, které kdysi používaly Ruby on Rails a od té doby pro jejich backend převedly na Node a Express. Protože jsem se učil používat Ruby on Rails jako backend pro React aplikace, myslel jsem, že prozkoumám některé výhody a nevýhody vytváření webové aplikace s backendem Node / Express JS.

Nejprve jsem tedy chtěl odpovědět na otázku: „Co je Express?“ Express je minimalistický webový rámec pro Node.js, který může spouštět webové aplikace nebo fungovat jako API, podobně jako Rails. Jedna věc, kterou jsem si všiml téměř okamžitě při návštěvě webu Express JS, je to, že existují skvělí průvodci a celá část pro odkazy na API. Dokumenty vypadají docela užitečné při vedení nového uživatele procesem nastavení jejich první webové aplikace Express.

V tuto chvíli musím říci, že jsem s Rails částečný, protože jsem strávil tolik času prací s Ruby a Rails v plném vývoji a používal jsem ho jako backend pro aplikaci s frontendem React JS. Pohled na výhody a nevýhody používání dvou různých rámců byl velmi poučný.

PROS: Používání Ruby on Rails jako backendu

  • Kód je vyspělý a existuje již dlouhou dobu s velkou vývojovou komunitou a skvělými dokumenty
  • Rychlý vývoj, opravdu rychlé stavění věcí se všemi generátory, které přicházejí s kolejnicemi (rád to nazývám Rails Magic)
  • Čitelnost - Rails je snadno čitelný, teoreticky můžete otevřít projekt Rails kohokoli a snadno najít cestu kolem něj, protože všechny projekty jsou uspořádány téměř stejným způsobem

CONS: Používání Ruby on Rails jako backendu

  • Je to pomalejší / těžší - Ruby on Rails je těžší a náročnější na zdroje, což může vést k pomalejším dobám odezvy při stavbě větších projektů
  • Problémy se škálovatelností - stejně jako jsem se zmínil výše, je obtížnější škálovat s kolejemi těžší, takže to nemusí být nejlepší volbou pro větší a super interaktivní weby
  • Příliš mnoho magie - někdy existuje příliš mnoho magie a zatímco generátory jsou skvělé, problémy mohou být trochu obtížnější ladit, když se objeví

PROS: Použití Express / Node JS jako Backend

  • Rychlejší - Express je super lehký a je skvělý pro stavbu větších projektů, které bude potřeba škálovat; Také rychlé načítání znamená lepší výsledky vyhledávání Google
  • Napsáno pro zpracování asynchronních požadavků - mohu vám z první ruky říci, že Rails je mnohem obtížnější konfigurovat, pokud jde o asynchronní požadavky (vytvoření chatovací funkce s Rails nebylo snadné)

CONS: Použití Express / Node JS jako Backend

  • Čitelnost - Kód Rails je snadno čitelný, ale z toho, co jsem slyšel, může být kód Express těžší zjistit, kde se dějí věci, což může být obtížné, pokud se právě připojujete k projektu založenému na Express
  • Více kódu - Express / Node vyžadují více řádků kódu než stejná akce v Rails

Doufám, že můj seznam výhod a nevýhod byl užitečný při výběru, s jakým backendem pracovat! Nakonec to všechno upřednostňuje. Přestože Rails mohou být pomalejší, je snazší připravit a rychle spustit projekt a rozdíl rychlosti může být jen okrajový.

Rozhodl jsem se postavit svůj další projekt s Express JS, abych viděl, jak se tyto výhody a nevýhody hromadí, když ve skutečnosti píšu svůj vlastní kód.