Proč a kdy pro vývoj webových aplikací zvolit Ruby on Rails?
Barbora Koďousková
·27/03/2024
·9 min.
Ruby on Rails je populární framework určený pro vývoj webových aplikací a webů. Mezi jeho největší přednosti patří objektový přístup k databázi či rychlejší a snazší doplnění funkcionality, což je také důvod, proč bývá často využíván startupy. Pojďme se společně na Rails podívat trochu víc zblízka. Postupně si zodpovíme následující otázky:
- co je Ruby on Rails,
- co je MVC a jak souvisí s RoR,
- jaký je rozdíl mezi Ruby on Rails a Ruby,
- co jsou gemy a k čemu se používají,
- proč pro vývoj webových aplikací zvolit právě Rails,
- pro které projekty RoR využít,
- k jakým projektům se tento framework nehodí,
- kdy zvolit Ruby on Rails a kdy konkurenční Django.
Co je Ruby on Rails?
Ruby on Rails, zkráceně Rails nebo RoR, je framework určený pro rychlý vývoj moderních webových aplikací či webů. Jedná se o open-source řešení, které s cílem zvýšení produktivity vývojářů v roce 2004 představil dánský programátor David Heinemeier Hansson.
Rails pak v rozmezí let 2005-2008 doslova kralovaly oblasti webového vývoje a značně ovlivnily mnoho tvůrců i příchod nových technologií. Dodnes ovšem patří mezi hojně využívané vývojové prostředky, o čemž svědčí například žebříček komunity Stack Overflow, který RoR zařadil mezi 10 nejlepších frameworků roku 2019.
Ruby on Rails jsou napsané v programovacím jazyce Ruby a postavené na dvou základních myšlenkách: konvence nad konfigurací a DRY – Don’t Repeat Yourself. To znamená, že by vývojáři měli upřednostnit předpřipravené moduly před tvorbou svých vlastních čili naplno využívat hotových (standardních) řešení, které RoR nabízí, namísto vytváření nových tříd se stejnými vlastnostmi.
K vlastní konfiguraci jednotlivých částí aplikace se tak typicky ubíráme pouze v případě, kdy se liší od běžného nastavení. Současně by měl být každý prvek v kódu definovaný pouze jednou, díky čemuž je možné vytvářet jednodušší, čistší a přehlednější programy. Obě pravidla navíc šetří vývojářův čas, který může strávit nad složitější funkcionalitou.
Architektura MVC a Ruby on Rails
Mezi základní charakteristiky RoR proto můžeme zařadit levnější a rychlejší vývoj webových aplikací, programovací jazyk Ruby nebo důraz na konvence a koncept DRY. To vše úzce souvisí s architekturou MVC, na které jsou Rails postaveny.
Architektura MVC rozděluje funkcionalitu aplikace do tří oddělených, ale vzájemně komunikujících částí:
- Model, který má na starosti uchování či zpracování dat a objektovou reprezentaci databáze.
- View (pohled), jež uživateli zobrazuje (vrací) data zpracovaná modelem – například webovou stránka či PDF.
- Controller (řadič) neboli logika systému, která reaguje na události a dohlíží na proces zpracování.
Logika Rails webové aplikace tedy zůstává oddělena od obsahu. V praxi to může vypadat tak, že uživatel zadá nějaký vstup (například klikne na tlačítko pro odeslání formuláře), controller (řadič) žádost přijme a přepošle do modelu, který formulář odešle a informuje řadič. View si v modelu vyzvedne data a zobrazí uživateli zprávu o úspěšném / neúspěšném provedení požadavku.
Jaký je rozdíl mezi Ruby a Rails?
Předtím, než se pustíme do gemů, výhod a nevýhod vývoje v Rails a jeho srovnání s konkurenčním frameworkem Django, bychom si měli ujasnit rozdíl mezi pojmy Ruby a Ruby on Rails.
Ruby je interpretovaný objektově orientovaný jazyk, který vznikl jako reakce na složitější Perl a Python. Vývojářům nabízí větší volnost v podobě úpravy základních metod. Má velice atypickou syntaxi, která se více než programovacímu jazyku podobá lidské řeči. Kód psaný v Ruby je tak typicky čitelnější a s tím i snazší na pochopení.
Framework Rails z jazyka Ruby vychází (je v něm napsán). Přebírá z něho většinu vlastností a je na něm přímo závislý – proto se také objevuje v názvu.
RoR gemy
Nedílnou součástí vývoje webových aplikací v Ruby on Rails je používání takzvaných gemů (anglicky gems). Gemy jsou knihovny připraveného kódu, které řeší nějakou konkrétní funkcionalitu. Pokud chceme do appky implementovat nějakou typickou vlastnost, můžeme k tomuto účelu využít právě gem, který se o ni postará za nás. Rails gemy tedy fungují podobně jako pluginy ve WordPressu nebo moduly v Node.js.
Současně si tímto způsobem můžeme usnadnit implementaci opakovaných částí kódu v různých aplikacích. Pokud si například vytvoříme gem na export určitých dat z databáze, nemusíme už v budoucnu tuto akci znovu programovat. Stačí, když použijeme vytvořený gem. Stejně tak můžeme hotové řešení stáhnout například z GitHubu, kde si je komunita kolem Ruby on Rails vzájemně sdílí.
Proč pro vývoj webových aplikací zvolit framework Ruby on Rails
Rails bývá mnoha odpůrci vytýkáno, že ubírají na komplexní znalosti kódu, respektive, že se zde vývojáři až příliš spoléhají na konvence, namísto aby vytvořili vlastní řešení. Na druhou stranu však díky tomu mohou svůj čas využít efektivněji a soustředit se na pokročilejší funkce webové aplikace.
Vývoj webových aplikací v Ruby on Rails je tak mnohdy rychlejší a levnější než například v PHP. Proto také bývá častou volbou startupů, jež mohou využít i jeho dalších předností. Tou je například snazší a rychlejší implementace nových funkcí. Web nebo webová aplikace díky tomu mohou pružně reagovat na růst firmy či potřeby zákazníků.
Můžeme ovšem jmenovat i další výhody, které Rails do vývoje přináší:
- funkční a intuitivní syntaxe,
- produktivní vývoj využívající stručnosti jazyka,
- stabilní kód a prostředí,
- gemy – jejichž používání dále usnadňuje a zrychluje programování,
- dokumentace – na internetu je dostupná obsáhlá dokumentace, tutoriály a další materiály, které napomáhají správnému pochopení fungování frameworku,
- komunita – kolem frameworku se neustále rozrůstá komunita, jež mezi s sebou aktivně sdílí spoustu gemů, které si může kdokoli bezplatně stáhnout,
- vytváření jednoduchých API – neboli aplikačních rozhraní, díky kterým můžeme do webových aplikací nebo webů snáze přidávat novou funkcionalitu,
- úprava původně definovaných tříd – v případě, kdy potřebujeme, aby se jejich funkce lišila od hotového řešení.
Rails a databáze
Ruby on Rails rovněž zjednodušuje komunikaci s databází, která je zde prezentována jako objektová abstrakce. Na SQL tabulky se tak díváme jako na třídy a pracujeme s nimi prostřednictvím jejich metod.
Pro jaké projekty využít Ruby on Rails?
Rails jsou skvělou volbou pro vývoj webových aplikací, které neplánují miliony aktivních uživatelů. Dále pak pro:
- Databázové systémy a pokročilé struktury, které jsou vhodným doplňkem inovativních byznys modelů.
- CMS systémy, tedy blogy, webové magazíny, informační weby a další stránky, které se soustředí na práci s obsahem.
- Projekty, které plánují přidávání funkcionality nebo prozatím nemají představu o celé struktuře.
- Projekty, kde nás tlačí termíny pro vytváření funkčních prototypů či nasazení.
- Jednostránkové aplikace neboli SPA, jež uživatelům nabízejí rychlejší odezvu na jejich požadavky.
Framework Ruby on Rails je také vhodné kombinovat s agilním přístupem k vývoji, postaveném na řadě iterací, jež postupně přidávají veškerou potřebnou funkcionalitu.
Nevýhody Rails aneb kdy tento framework nezvolit
Ruby on Rails se příliš nehodí na vývoj webových aplikací s integrací umělé inteligence a strojového učení. Mnohdy mu také bývá vytýkán nižší výkon v porovnání například s běhovým prostředím Node.JS a větší nároky na serverovou část aplikace. Stejně tak není příliš vhodný pro sociální sítě s obrovským množstvím uživatelů.
Příkladem může být kauza s Twitterem, který byl původně vyvíjen právě prostřednictvím tohoto frameworku. Na druhou stranu se však v praxi můžeme setkat s řadou rozsáhlých řešení, která jsou uživatelsky přívětivá a Rails využívají dodnes. Patří sem například Basecamp, Airbnb nebo GitHub.
Rails vs. Django
Django je stejně jako RoR webový framework navržený pro správu zpravodajských webů či online magazínů. Vychází z jazyka Python a architektury MVC, přičemž mezi jeho největší výhody bezpochyby patří automatické generování administrační části projektu.
Django i Ruby on Rails se tak obvykle používají k tvorbě stejného typu webů nebo aplikací. Framework vycházející z Pythonu se přitom více hodí i na komplexnější digitální produkty nebo práci s AI. Nelze však jednoznačně říct, že by byl jeden ze souborů webových knihoven vysloveně lepší než druhý. Svědčí o tom také popularita, kterou si obě řešení v čase zachovávají.
Při výběru správné technologie bychom se tak měli řídit zejména konkrétními požadavky na funkcionalitu a zkušenostmi s vývojem v daném jazyce. Pokud si s výběrem nejste jisti, neváhejte využít naší bezplatné konzultace, kde společně probereme celý koncept a připravíme to nejlepší možné řešení. Rádi se chopíme také realizace celé webové aplikace.
Máte nápad na nový projekt?
Popište nám ho! Rádi odpovíme na všechny vaše dotazy, nebo rovnou domluvíme termín schůzky.
Ozvěte se Vítovi! Vše s vámi projedná a probere.
Vít Uličný
Zakladatel & CEO