Co jsou Ruby on Rails a proč by mě to mělo zajímat? - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Informace

Co jsou Ruby on Rails a proč by mě to mělo zajímat?

17. října 2006, 00.00 | První díl seriálu o Ruby on Rails – Úvod a instalace.

Úvod a instalace Ruby on Rails

Statické vs. dynamické stránky

V dávných dobách dřevního období Webu byla naprostá většina internetových stránek statická – autor prezentace musel ručně vytvořit každý html dokument, který měl být na stránkách k dispozici. Chtěl-li pak nějakou část stránek upravit nebo, nedej bože, snad provést nějakou globální úpravu třeba paty stránky, musel ručně upravovat velké množství souborů. Jelikož a protože je účelem počítačové techniky lidem život usnadňovat, zrodil se záhy koncept dynamických webových stránek. Jedním z prvních průkopníků tohoto nového odvětví se stal jazyk PHP, který se od svého vzniku v roce 1994 stal jednou z nejpopulárnějších vývojových platforem vůbec.

Tvorba stránek v PHP – a ostatně i většině jiných jazyků – většinou sestává z kompletní implementace veškeré funkcionality stránek pomocí nepřehledné sady zabudovaných a uživatelských funkcí; když se do projektu pustí zkušený programátor, dostane se možná i na pár glorifikovaných prefixů k funkcím, kterým se v rámci PHP milosrdně říká objekty. Takový přístup je samozřejmě řádově pohodlnější, než psaní myriád statických html dokumentů, ale rozhodně by mohlo být i líp. A proto se během let objevila celá řada nejrůznějších frameworků, knihoven, sad nástrojů, forem na bábovky a toolkitů, jejichž existence byla povětšinou motivována potřebou zjednodušit si práci a snížit pravděpodobnost lidské chyby, a to i za cenu ztráty výpočetního výkonu (kterého má dnes každý webový server přebytek). Za všechny můžeme jmenovat třeba ve své době slibný, v Pythonu napsaný server CherryPy.

Na scénu vstupuje Ruby on Rails

Asi nejznámějším z těchto nástrojů jsou právě Ruby on Rails (dále jen RoR) – soubor několika užitečných webových knihoven napsaných v moderním, interpretovaném jazyce Ruby. RoR jsou kompletně objektové prostředí, vystaveně na softwarové architektuře, známé pod názvem Model-View-Controller, často zkracovaným na prosté MVC. Tato architektura dělí funkcionalitu aplikace mezi objekty typu Model, které poskytují abstrakci k databázi; typu Controller, které přijímají uživatelské požadavky a podle nich vydávají příkazy modelům a poskytují výstup pro uživatele; a nakonec objekty typu View, které ovládají formu, kterou se výstup controlleru prezentuje uživateli. V případě RoR jsou controllery, modely a views implementovány moduly ActionController, respektive ActiveRecord a ActionView.

Pro ilustraci posuďte tento příklad:
Karel, uživatel aplikace Adresář, založené na architektuře MVC, chce ze svého programu dostat kontaktní informace svého kamaráda Pepy. Prostředky, které mu poskytuje uživatelské rozhraní (objekt typu View), tedy aplikaci zadá požadavek na vydání informací o Pepovi. Tento požadavek je aplikací předán odpovídajícímu objektu typu Controller, který jej analyzuje a následně si od třídy mající na starosti hledaná data vyžádá instanci třídy (tedy objekt) příslušného modelu, reprezentující požadovaný záznam v databázi; tento záznam potom předá příslušnému objektu View a ukončí se – uživatelské rozhraní už se postará o zformátování a zobrazení získané informace. Pro pochopení výhod tohoto přístupu je třeba si uvědomit, že model nepotřebuje znát nic, o způsobu, jakým jsou jím poskytované informace zobrazovány ani o vnitřní logice aplikace, stejně jako view nepotřebuje znát způsob, jakým jsou aplikací ukládána data (databáze, soubory…) – každý typ objektu se zkrátka stará o své, což umožňuje velmi čistý návrh aplikace a rozdělení úkolů mezi jednotlivé programátory, podle oblasti jejich odbornosti (návrh databáze, uživatelské rozhraní nebo aplikační logika).

Pro nedočkavce, konkrétní implementace v Ruby on Rails by vypadala nějak takhle:

class PeopleController < ApplicationController
  def find
    @person = Person.find_by_name(params[:id])
    if(!@person)
      flash[:notice] = "Záznam #{params[:id]} nenalezen."
    end
  end
end

Jak Rails nainstalovat?

Instalace RoR na Mac OS X, stejně jako provoz a vývoj pro toto prostředí jsou jednoduchou záležitostí. Přímočarý postup, který si dnes popíšeme, nás přivede do příkazové řádky, ale netřeba se bát – potřebujeme vykonat jen několik základních úkonů. Prvním krokem na naší cestě za funkčním Rails prostředím je instalace nástroje port, který nám poskytne snadný přístup k nejrůznějším užitečným open source programům. Nejdříve si stáhněte instalátor z této adresy. Instalace by měla proběhnout automaticky. Nyní už jen otevřete Terminal (v /Applications/Utilities) a postupně spusťte tyto příkazy:

Updatuje program port na nejnovější verzi:

sudo port selfupdate
Synchronizuje lokální seznam dostupných balíčků se seznamem na serveru:
sudo port sync
Nainstaluje aktuální verze databáze SQLite, interpreteru Ruby a systému rubygems:
sudo port install sqlite3 rb-sqlite3 ruby rb-rubygems
Nainstaluje Ruby on Rails samotné:
sudo gem install rails

Buďte trpěliví, během instalace se řada věcí kompiluje a, v závislosti na rychlosti vašeho stroje, může celý proces nějakou dobu trvat (většinou ne déle než 10 minut).

Nyní, když jsme nainstalovali vše potřebné, můžeme přistoupit k vytvoření prvního projektu na Rails. Vraťte se zpět do Terminálu a spusťe příkaz:

cd ~/Sites/
Následně:
rails muj_projekt
A na závěr
cd muj_projekt; scripts/server

Nyní máme běžící instanci vývojářského serveru WebBrick, sedící na lokální adrese http://0.0.0.0:3000/. Zkuste si tuto adresu otevřít ve svém prohlížeči – pokud se dosud vše dělo správně, měla by se objevit uvítací obrazovka RoR.

Běžící server můžete prozatím ukončit jednoduše zavřením terminálového okna. Příště si povíme o konfiguraci RoR aplikace a serveru, vysvětlíme si základy jazyka Ruby a vytvoříme první web na Rails.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Ehm...

Autor: OC Muž

Založeno: 17.10.2006, 00:31
Odpovědí: 0

... Ruby on rails je velice hezká věc kdekoli jinde, než v Mac OS X. Používat to ale někde, kde jsou nativně k dispozici WebObjects?!? Probohaživého, proč?!?

Odpovědět na příspěvek

RE: Ehm...

Autor: Petr Hrncir Muž

Založeno: 17.10.2006, 04:23

Nechci se mylit, ale mel jsem pocit, ze WebObjects existuji uz jenom proto, ze by Apple musel predelat Applestore:o) Podpora u tretich stran nulova, od vyrobce miziva, na projektu pracuje snad jeden clovek a chcou to cele otevrit a utlumit. O Ruby nevim nic, ale i tak mi pripada perspektivnejsi, kdyz si clovek nechce zacinat s mysql/php.

Odpovědět na příspěvek

RE: RE: Ehm...

Autor: jf Muž

Založeno: 17.10.2006, 06:20

hmm, 99.9% webových poskytovatelů nabízí na serveru PHP-SQL -- o Ruby jsem tedy zatím neslyšel... a co s tím?

Odpovědět na příspěvek

RE: RE: RE: Ehm...

Autor: d.f.h Muž

Založeno: 17.10.2006, 10:29

Stačí hledat. Ruby hosting s připraveným RoR už najdete i u nás, o zahraničí ani nemluvě.

Odpovědět na příspěvek

RE: RE: Ehm...

Autor: maja Muž

Založeno: 18.10.2006, 20:44

"otevrit a utlumit" - to sa mierne vylucuje
polemizovat o rosirenosti nema zmysel, ale staci trochu googlovat a mozno budes prekvapeny kolko sajtov stale bezi a robi sa vo WO
in fact, WO je koncepcne stale na mile pred JSP/PHP/ASP a Ruby takisto
btw - vyrobit yet-another-language s takou obsurnou syntaxou bol zrejme napad po hodne divokej noci t

Odpovědět na příspěvek

RE: Ehm...

Autor: Valda Muž

Založeno: 17.10.2006, 09:13

Co treba cena? Myslim, ze WebObjects deployment neni zdarma? Nebo se pletu?

A taky co treba jazyk? Jake jazyky jsou podporovane ve WO? Java, WebScript? (fakt to nevim). Myslim, ze Ruby ovlada veci, ktere v techto jazycich nenajdete.

No ale celkove je to prilezitost naucit se neco noveho a zajimaveho a to je asi hlavni duvod proc se tesit na dalsi kvalitni serial (doufejme, ze stejne kvalitni jako ty z Vaseho pera :-)

Odpovědět na příspěvek

RE: RE: Ehm...

Autor: JJ Muž

Založeno: 17.10.2006, 15:31

WebObjects deployment je zdarma s Mac OS X serverem, který jaksi z principu potřeba je. WO je dnes bohužel už Java-only, nicméně i/právě pro Javu seženu v případě potřeby vývojáře snadněji než pro RoR.

To, že v Ruby jdou některé věci, které nejdou v Javě nepopírám, ale co jsem se koukal, tak na žádnou výraznou jsem nepřišel...

Odpovědět na příspěvek

RE: RE: RE: Ehm...

Autor: Botanicus Muž

Založeno: 27.09.2007, 19:37

Ze ne? Hned mozna nejgenialnejsi vlastnost Ruby - otevrena definice trid, to v Jave nevykouzlite.

Priklad - nelibi se vam, co haze objekt fajlu pri putsnuti? Predefinujte ho! (class File ; def to_s ; read ; end ; end). Chcete nakou metodu pridat do urcite tridy? Neni problem ...

Odpovědět na příspěvek

RE: Ehm...

Autor: Adam Šindelář Muž

Založeno: 17.10.2006, 11:28

Ruby on Rails jsou primárně vyvíjeny na a pro uživatele Mac OS X, kde také leží největší základna uživatelů. Takže to asi bude tím, že používat WebObjects na platformě, kde jsou k dispozici RoR přijde hloupé nejenom mně.

Odpovědět na příspěvek

RE: RE: Ehm...

Autor: JJ Muž

Založeno: 17.10.2006, 15:34

No na mně to dělá dojem, že RoR je hezká věc na nenáročné záležitosti, něco jako ten SQLLite či jak se ten skoro-SQL-server v OS X jmenuje. Netvrdím, že je vhodné dělat sebemenší pitomost ve WO, ale na větší řešení nebo kdybych si musel vybrat pouze jednu vývojovou platformu, pořád ještě by to WO vyhrály.

Odpovědět na příspěvek

RE: RE: RE: Ehm...

Autor: Adam Šindelář Muž

Založeno: 17.10.2006, 18:46

No, řekneme si to s pár dalšími díly seriálu - já jsem z webového programování zakusil všelicos a musím říct, že osobně historii internetu dělím na dobu před a po RoR :)

A mimochodem, Rails samozřejmě podporují kromě SQLite třeba Postgresql, MySQL nebo ODBC - SQLite jsem pro ilustraci vybral ze dvou důvodů: jednak je ze jmenovaných suverénně nejméně náročná na hw prostředky a jednak pro vývoj aplikace by stačilo i ukládání do souborů :)

Odpovědět na příspěvek

RE: RE: RE: RE: Ehm...

Autor: OC Muž

Založeno: 18.10.2006, 23:36

> já jsem z webového programování zakusil všelicos

Pokud "všelicos" nezahrnuje WebObjects, pak to nestačí. WO vs. cokoli jiného je podobný rozdíl, jako Cocoa vs. cokoli jiného. To není rozdíl třídy. To je rozdíl pěti tříd.

Odpovědět na příspěvek

RE: RE: RE: RE: RE: Ehm...

Autor: Adam Šindelář Muž

Založeno: 19.10.2006, 12:51

Ale no tak, dobrý muži... Výroky typu "WO vs. cokoli jiného..." si nechte pro někoho, kdo s jmenovanou technologií nedělal nebo se narodil předevčírem.

Chápu
, že je těžké uvěřit, že někdo jiný než Apple je schopný vytvořit použitelnou technologii, ale stalo se - takže dokud jste pořádně nedělal s jiným frameworkem, jako CherryPy nebo Ruby on Rails (a nepočítá se sledování pětiminutové prezentace), šetřete prosím soudy.

Pokud se do téhle diskuze opravdu chcete pustit, otevřete si diskuzi v místním fóru, ať nespamujeme v komentářích; rád vám detailně ilustruji v čem přesně se zmíněné technologie liší.

Odpovědět na příspěvek

RE: RE: RE: RE: RE: RE: Ehm...

Autor: maja Muž

Založeno: 19.10.2006, 19:21

Zatahujes diskusiu neadekvatnym smerom ...
Preto len fakticky: OC ma plnu pravdu v tom, ze posudenie webovskych framerworkov bez znalosti WO je nehoraznost.
Preco ? Urob si dosledne objektovu analyzu riesenia applikacneho servera.
A btw - WO nevymysleli ludia z Apple, ze hej ...

Odpovědět na příspěvek

Chyba v instalacnim postupu

Autor: Valda Muž

Založeno: 17.10.2006, 09:40
Odpovědí: 0

Binarka port se nainstaluje do /opt/local/bin. Tento adresar nemam ve vyhledavaci ceste (PATH) a instalator DarwinPorts se nebotezoval ho tam pridat, ani udelat treba link. Takze prikaz

sudo port

nebude fungovat.

Odpovědět na příspěvek

RE: Chyba v instalacnim postupu

Autor: Valda Muž

Založeno: 17.10.2006, 09:45

Aha. Tak ted se divam na postflight skript v instalaku a on se o to snazi, ale udela zmenu promenne PATH do souboru .profile, takze pokud uz mam existujici .bash_profile tak se mi nenacte.

Odpovědět na příspěvek

RE: RE: Chyba v instalacnim postupu

Autor: Adam Šindelář Muž

Založeno: 17.10.2006, 11:23

Aha, omlouvám se, já jsem port kompilovat a instalační skript mi fungoval - že instalační balíček nebude fungovat mě nenapadlo.

Máte možnost buď psát kompletně /opt/local/bin/port nebo upravit soubor /etc/profile a tam rozšířit proměnou PATH o cestu /opt/local/bin/

Odpovědět na příspěvek

Ve sve dobe slibny CherryPy...?

Autor: Danielsan Muž

Založeno: 19.10.2006, 15:21
Odpovědí: 0

Ve sve dobe slibny CherryPy? :) To zni jako provokace...

Pokud chce mit clovek trosku volne ruce, je CherryPy vyborny i dnes. A nebo se daji pouzit na CherryPy postavene Django nebo TurboGears.

Odpovědět na příspěvek

RE: Ve sve dobe slibny CherryPy...?

Autor: so Muž

Založeno: 11.08.2007, 13:22

Django není postavené na CherryPy, TurboGears ano.

Odpovědět na příspěvek

Locomotive

Autor: Zdeněk Bohdancký Muž

Založeno: 31.10.2006, 16:05
Odpovědí: 0

Začatečníkům doporučuji vyrazit na Railsy s Locomotivou. :-)

http://locomotive.
raaum.org/


Jinak Ruby on Rails již budou součástí Mac OS X 10.5 Leopard.

Odpovědět na příspěvek

CHYBA V INSTALLACNOM POSTUPE

Autor: Tee Muž

Založeno: 06.11.2006, 12:49
Odpovědí: 0

Zdravim, myslel som si, ze ako zaciatocnik sa nieco naucim, ale kedze v clanku popisany postup instalacie je NEFUNKCNY, tazko sa mozem venovat programu samotnemu. Je to naozaj velka skoda. Nevie mi niekto poradit nejake man stranky?

Odpovědět na příspěvek

diskusni fórum

Autor: Patrik Jíra Muž

Založeno: 22.05.2007, 20:03
Odpovědí: 0

Rád alespoň ve formě komentáře oznámil spuštění diskusního fóra specializovaného na Ruby on Rails na adrese http://rails-forum.cz Takže všichni newbies i odborníci jsou vítaní ;)

Odpovědět na příspěvek

 

 

Odpověď na příspěvek:

> já jsem z webového programování zakusil všelicos

Pokud "všelicos" nezahrnuje WebObjects, pak to nestačí. WO vs. cokoli jiného je podobný rozdíl, jako Cocoa vs. cokoli jiného. To není rozdíl třídy. To je rozdíl pěti tříd.


Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: