Created
September 20, 2010 16:17
-
-
Save josefrichter/588155 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Začínáme s Rails | |
Tento průvodce popisuje jak začít s Ruby on Rails. Po jeho přečtení byste měli chápat následující: | |
Instalace Rails, vytvoření nové Rails aplikace a propojení aplikace s databází | |
Obecná struktura Rails aplikace | |
Základní principy MVC (Model, View, Controller) a designu založeného na REST přístupu | |
Jak rychle vytvořit základní části Rails aplikace | |
Tento průvodce je popisuje Rails verze 3.0. Některé části kódu zde uvedené nebudou fungovat v předchozích verzích Rails | |
1 Předpoklady tohoto průvodce | |
Tento průvodce je navržen pro začátečníky, kteří chtějí začít s Rails aplikací od úplného začátku. Nepředpokládá že máte jakoukoliv předchozí zkušenost s Rails. Nicméně abyste z něj vytěžili co nejvíce, potřebujete mít nainstalovány některé náležitosti: | |
jazyk Ruby verze 1.8.7 nebo vyšší | |
Poznámka: Ruby 1.8.7 p248 a p249 obsahují chybu, která shazuje Rails 3.0. Ruby Enterprise Edition ale mají tuto chybu opravenu od verze 1.8.7-2010.02. Pokud jde o verzi 1.9, pak Ruby 1.9.1 není použitelné, protože okamžitě selhává při spojení s Rails 3.0, takže pokud chcete používat Rails 3 s verzí 1.9.x použijte 1.9.2 pro hladký průběh. | |
balíčkovací systém RubyGems | |
funkční instalaci databáze SQLite3 | |
Rails je webový aplikační framework bežící na programovacím jazyku Ruby. Pokud nemáte žádnou předchozí zkušenost s Ruby, může pro Vás být náročnější ponořit se přímo do Rails. Na webu je několik dobrých bezplatných zdrojů k naučení základů jazyka Ruby, včetně následujících: | |
Mr. Neighborly’s Humble Little Ruby Book [anglicky] | |
Programming Ruby [anglicky] | |
Why’s (Poignant) Guide to Ruby [anglicky] | |
[zdroje doplněné překladatelem:] | |
http://www.root.cz/serialy/ruby-v-prikladech/ [česky] | |
http://interval.cz/programovani/ruby/ [česky] | |
2 Co jsou Rails | |
Rails jsou webový aplikační vývojový framework napsaný v jazyce Ruby. Je navržen tak, aby zjednodušil programování webových aplikací tím, že činí předpoklad o tom, co každý vývojář potřebuje aby začal. Umožňuje vám psát méně kódu a zároveň dosáhnout více než v mnoha jiných jazycích a frameworcích. Zkušení Rails vývojáři také říkají, že Rails dělají vývoj webových aplikací zábavnějším. | |
Rails jsou umíněný software. Činí předpoklady, že existuje "nejlepší" způsob dělání věcí a jsou navrženy aby takový způsob podporovaly - a v některých případech odrazovaly od alternativních způsobů. Pokud se naučíte "Rails přístup", pravděpodobně pocítíte výrazný nárúst produktivity. Pokud budete trvat na přenášení si starých zvyků z jiných jazyků a budete se pokoušet aplikovat postupy naučené jinde, váš zážitek může být poněkud méně veselý. | |
Filozofie Rails zahrnuje několik navádějících principů: | |
DRY - "Don't repeat yourself" = neopakujte se - naznačuje, že psát stejný kód stále dokola je špatně. | |
Konvence nad konfigurací - znamená, že Rails činí předpoklady o tom, co chcete udělat a jak to chcete udělat, místo aby vás nutily specifikovat každou jednu věc v nekonečných konfiguračních souborech. | |
REST je nejlepší vzorec pro webové aplikace - uspořádávat vaši aplikaci kolem zdrojů a standardních HTTP příkazů je nejrychlejší způsob. | |
2.1 Architektura MVC | |
V srdci Rails je ukotvena architektura Model, View, Controller, obvykle označována jen jako MVC. Výhody MVC jsou například: | |
- oddělení aplikační logiky od uživatelského rozhraní | |
- jednoduchost udržování kódu bez opakovaných součástí (DRY code) | |
- ujasnění kam různé části kódu patří, kvůli snadnější údržbě | |
2.1.1 Models (modely) | |
Model reprezentuje informace (data) aplikace and pravidla pro práci s nimi. V případě Rails jsou modely užívány zejména pro správu pravidel interakce s příslušnou databázovou tabulkou. Ve většině případů bude jedna tabulka v databázi odpovídat jednomu modelu vaší aplikace. Kus vaší aplikační logiky bude koncentrován v modelu. | |
2.1.2 Views (pohledy) | |
Views reprezentují uživatelské rozhraní vaší aplikace. V rails jsou views obvykle HTML soubory s vloženým Ruby kódem, který provádí úkony související čistě s přezentací dat. Views mají na starosti poskytovat data webovému prohlížeči nebo jinému nástroji použitému k zasílání požadavků vaší aplikaci. | |
2.1.3 Controllers (řadiče) | |
Controllery tvoří "lepidlo" mezi modely a views. V Rails jsou controllery zodpovědná za zpracování příchozích požadavků z webového prohlížeče, získávání dat z modelů a odesílání těchto dat do views k jejich zobrazení. | |
2.2 Součásti Rails | |
Rails jsou poskládány z mnoha jednotlivých komponent. | |
Action Pack | |
Action Controller | |
Action Dispatch | |
Action View | |
Action Mailer | |
Active Model | |
Active Record | |
Active Resource | |
Active Support | |
Railties | |
2.2.1 Action Pack | |
Action Pack je jediný gem, který obsahuje Action Controller, Action Dispatch a Action View. Je to VC část MVC. | |
2.2.2 Action Controller | |
Action Controller je komponenta, která má na starosti controllery v Rials aplikaci. Action Controller framework zpracovává příchozí požadavky v Rails aplikaci, vytahuje z nich parametry a rozesílá je příslučným akcím. Služby poskytované Action Controllerem zahrnují správu relací (sessions), vykreslování šablon a správu přesměrování. | |
2.2.3 Action View | |
Action View má na startosti views vaší Rails aplikace. Umí v základu vytvořit výstup jak v HTML tak v XML. Action View řídí vykreslování šablon, včetně vnořených a parciálních šablon, a obsahuje zabudovanou podporu AJAXu. | |
2.2.4 Action Dispatch | |
Action Dispatch zpracovává směrování příchozích požadavků a rozesílá je tam kam chcete, buďto do vaší aplikace anebo do jakékoliv jiné Rack aplikace. | |
2.2.5 Action Mailer | |
Action Mailer je framework pro tvorbu e-mailových služeb. Action Mailer můžete použít pro příjem a zpracování příchozích e-mailů a odesílání jednoduchých čistě textových anebo složitých multipart emailů na základě flexibilních šablon. | |
2.2.6 Active Model | |
Active Model poskytuje definované rozhraní mezi službami gemu Action Pack a ORM gemy (Object Relational Mapping - objektově relační mapování) jako například Active Record. Active Model umožňuje Rails využívat jiné ORM frameworky místo Active Recordu, pokud to vaše aplikace potřebuje. | |
2.2.7 Active Record | |
Active Record je základem pro modely v Rails aplikaci. Umožňuje mimo jiné nezávislost na databázi, základní CRUD (create,read,update,delete - vytvořit, načíst, upravit, smazat) funkcionalitu, pokročilé vyhledávací schopnosti, a schopnost specifikovat vztahy (relace) mezi modely. | |
2.2.8 Active Resource | |
Active Resource poskytuje rámec pro správu spojení mezi aplikační logikou a REST službami. Implementuje způsob mapování webových zdrojů na lokální objekty s CRUD sémantikou. | |
2.2.9 Active Support | |
Active Support je rozsáhlá kolekce podpůrných funkcí a rozšíření základní knihovny Ruby, které jsou využívány v Rails jak interním kódem tak vašimi aplikacemi. | |
2.2.10 Railties | |
Railties jsou srdcem Rails kódu, který vytváří novou Rails aplikaci a propojuje jednotlivé frameworky a pluginy v rámci Rails aplikací. | |
2.3 REST | |
REST je zkratka pro Representational State Transfer a je základem REST architektury. Ta je obecně považována za disertační práci Roye Fieldinga "Architektonické styly a navrhování architektury síťového software" [anglicky]. Sice si můžete pročíst celou práci, ale v Rails se REST koncentruje do dvou hlavních principů: | |
Používání identifikátorů zdrojů, jako například URL, pro reprezentaci zdrojů | |
Přenášení reprezentace stavu těchto zdrojů mezi systémovými komponentami. | |
Například v Rails aplikaci bude požadavek typu | |
DELETE /photos/17 | |
chápán jako odkazující na zdroj-fotografii s ID=17 a indikující požadovanou akci - smazání zdroje-fotografie. REST je přirozeným stylem architektury webových aplikací a Rails se jím řídí aby vás odstínily od mnohých komplexních problémů souvisejících s REST a podivností prohlížečů. | |
Pokud by vás zajímalo více podrobností o REST jako architektonickém stylu, následující zdroje jsou snadněji stravitelné než Fieldingova disertace: | |
A Brief Introduction to REST by Stefan Tilkov | |
An Introduction to REST (video tutorial) by Joe Gregorio | |
Representational State Transfer article in Wikipedia | |
How to GET a Cup of Coffee by Jim Webber, Savas Parastatidis & Ian Robinson | |
[něco v češtině?] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment