Ruby on Rails je Framework, který se používá pro vývoj webových aplikací napojených na databázi, které jsou postavené na architektuře model-view-controller. Tento Framework byl vytvořen dánským programátorem Davidem Heinemeierem Hanssonem v rámci jeho práce na projektu Basecamp a byl poprvé releasován v červenci 2004. Zásadní průlom nastal v roce 2006, když Apple ohlásil, že bude distribuovat Ruby on Rails s novou verzí svého operačního systému OS X v10.5 „Leopard“.

Konvence před konfigurací

Jedním ze základních principů využitých pro tento Framework je to, že konvence má přednost před konfigurací. Programátor pak konfiguruje výhradně ty části aplikace, které se liší od běžného nastavení.

Vliv Ruby on Rails na vývoj webových aplikací

Ruby on Rails významně ovlivnilo vývoj webových aplikací, jeho vliv na jiné webové frameworky je patrný dodnes, například u Django pro Python, Laravel pro PHP, Pheonix v Elixiru nebo Sails.js v Node.js.

Výhody Ruby on Rails

  • Nejlepší průmyslové standardy. Ruby on Rails je Framework „s názorem“, tedy provádí programátory svým přístupem k řešení. Jedním z pilířů je filozofie DRY (Don’t repeat yourself, tedy „neopakovat se“), což zajišťuje snadnější údržbu aplikace.
  • Rychlost vývoje. Ruby on Rails byl vytvořen tak, aby bylo možné rychle vytvořit prototyp i finální aplikaci. Využívá systém modulů, generátor skriptů a efektivní systém na správu balíčků, tak aby bylo možné vytvořit komplexní aplikace za využití několika málo příkazů.
  • Komunita. Ruby on Rails je open-source Framework, který je podporovaný aktivní komunitou talentovaných programátorů. Protože používají Framework pro svoje projekty, mají zájem na neustálém vylepšování základu kódu a implementaci nových funkcionalit. Díky tomu je velká šance, že problém, který programátor řešil, už vyřešil někdo před ním a nemusí tak „objevovat kolo“. Framework je pravidelně aktualizovaný, chyby opravované a bezpečnost drží krok s nejlepšími průmyslovými standardy.

Nevýhody Ruby on Rails

  • Pomalejší provozní rychlost. Aplikace jsou hůře škálovatelné, protože provozní rychlost je relativně pomalejší oproti například Djangu nebo Node.js. Přesto je nepravděpodobné, že by aplikace měla pozorovatelné výkonové problémy, pokud nemá stejně masivní uživatelskou základnu jako například Twitter. Ten se pokoušel výkon Ruby on Rails vylepšit poté, co aplikace získala světovou popularitu. Přestože Twitter Framework neopustil zcela, některé komponenty musel nahradit řešením s využitím Scaly.
  • Nedostatek flexibility. Tím, že má Ruby on Rails „svůj názor“, má nastaveno mnoho pevných závislostí a modulů. To může být velmi užitečné, pokud se jedná o aplikaci s obvyklými funkcionalitami. Pokud se programátoři pokouší vytvořit unikátní řešení, nebude Ruby on Rails pravděpodobně ideální volba.
  • Vysoká cena chybných rozhodnutí. Chybná rozhodnutí ohledně architektury v úvodních fázích projektu mohou mít vyšší finanční i časový dopad nežli u jiných frameworků. Strukturní nedostatky je obtížné opravit, vzhledem k úzké provázanosti jednotlivých modulů.

Shrnutí

Ruby on Rails je jeden z nejlepších vývojových frameworků, má skvělou komunitu, kvalitní základ kódu a spoustu možností. Pro svoje aplikace si ho vybrali například v Airbnb, GitHubu, Zendesku nebo Bloombergu. Nehodí se však pro aplikace, které vyžadují absolutní kontrolu nad architekturou, moduly, databázovou integrací a serverovým deploymentem. V takových případech může být vhodnější využít například Node.js.