Ruby on Rails

Valószínűleg már sokszor hallott, ahogy a Ruby on Rails növeli a termelékenységet és a minőségi web programozó termelékenységet. Őszintén szólva, hogy teljes mértékben megértsék, mert amit a hype kell olvasni «Agile Web Development Rails». Azonban egy kis sorozatban, még mindig próbál adni az általános elképzelés, hogy mi a „sínek”, és hogyan annyira jó.

Egy nagyon rövid története Ruby és ROR

Kellett egy „script” nyelv, ami erősebb, mint a Perl, és az objektum-orientált, mint a Python. Ezért úgy döntöttem, hogy hozzon létre a saját programozási nyelve.

Egy interjúban az O'Reilly LinuxDevCenter


Fotókat a hivatalos blog

De mindez csupasz és unalmas tényeket.

Röviden a hype és előnyök


Ha szeretne információt kapni RoR, akkor megbotlik az erős kijelentéseket, hogy ezzel a keret lehet fejleszteni 10-szer gyorsabb, mint a webes alkalmazások Java (annak kereteit, természetesen), stb Tehát nem hiszem, ezt az egészet. Eleinte próbáld ki magad, és akkor nem kell mondani semmit. És így meg fogja érteni, hogy ez tényleg igaz.

Tehát mi olyan jó ezekben a sínek? A legfontosabb dolog, véleményem szerint az a tény, hogy a keret nem született mesterséges körülmények között, és a „szakadt” egy futó és nyereséges szoftver terméket. Így még mielőtt az első említés átadta a run-in a valós világban, valós felhasználók és a kockázatot. Ha megnézzük az építészeti és műszaki szempontokat, a

- Először is, az MVC architektúra megkönnyíti elkülöníteni a adatrétegeinket, prezentáció és az üzleti logika egymástól;
- másodszor, RoR szigorúan elvét követi DRY (Ne ismételje Yourself - ne ismételjük), amely lehetővé teszi, hogy írjon a rugalmas és legkosoprovozhdaemye alkalmazások;
- Harmadszor, a Rails lehetővé teszi, hogy összpontosítson a feladat, nem pedig a találmány a kerék. Ha meg kell vizsgálni, hogy a név mező ki van töltve, akkor egyszerűen írja validates_presence_of: név és mozog a végrehajtás a fontosabb dolgokat (or'll megy teát inni);
- és végül, ez egy keretein web programozó működő orvosok web-programozó, és nem a gyümölcs egy beteg elme - őrült elmélet - a „fejlesztők”, marketing dugó vagy természetesen a munka a számítástechnikában.

Az adatréteg (Modell) - ActiveRecord


ActiveRecord egy megvalósítása ORM ellátva Rails. De mi az ORM? ORM (Object-relációs leképezés) - a technika bemutató adatbázis segítségével objektumokat. Ie osztály egy asztal string objektumot és annak területeken, illetve az oszlop. mert a legtöbb olvasó ismeri a «C-szerű» szintaxis, itt van egy példa a Java.

Vegyünk néhány asztal könyvek:
id int (10)
név varchar (100)

Ez a táblázat is képviselteti magát, mint egy osztály Book:

public class Book public int id;
public String név;


Ie Book thinkinginjava = új könyv (1); visszatérünk vonal könyvek egy tábla id = 1.

ActiveRecord kínál nekünk egy nagyon gazdag végrehajtását ORM, amely maga építi hierarchiáját osztályok szerkezete alapján az asztalra. Különben is, itt (ahogy valóban, máshol RoR) támogatja az elv „Egyezmény a konfiguráció”. De a szöveg a szöveg, és a kód azt mondja, mindent a maga számára. Ha vesszük a fenti táblázatban, csak meg kell futtatni egy szkriptet csak generációs modell:

ruby script / generál modell könyv


És íme! A mappa / app / modellek / megjelent book.rb fájl megnyitásával, hogy valami ilyesmit fog látni a következő kódot:

Könyv osztály vég


Tehát, mi történt? Van egy kész modellt a könyveket asztalra. Ha Rails inicializálás azt jelenti, hogy a tábla nevét az osztály neve többes számban, ahol a szavak vannak elválasztva aláhúzás. Ie megbízások asztal megfelel az osztály rend line_items - LineItem, emberek - Person, stb Így, most már használni ..:

defensivedesign = Book .new
defensivedesign. name = "Defensive Design for the Web"
defensivedesign. megment


Amint látjuk, az alapértelmezett osztály attribútumok végrehajtása, amelyek megfelelnek a táblázat egyes oszlopainak és módszereit szifilisz (Create, átállítani, Update, Delete). Nem írom le ide ezeket a módszereket, hogy ne kapcsolja be ezt a cikket egyfajta utasítás. Ezek sok és nagyon kényelmes.

Tehát, segítségével néhány „mágikus” volt számunkra a rengeteg munkában. Azonban sokan úgy vélik, hogy nem lehet kijutni semmilyen módon túl, hogy a mágia. Ez nem így van, mert az összes „megállapodás” könnyen figyelmen kívül hagyni. Például, ha már van egy adatbázis, amely nem lehet változtatni, és az asztalon a könyv az úgynevezett knigi, akkor csak meg kell mutatni ezt ki:

Könyv osztály set_table_name "knigi"
vég


Ugyanez igaz más dolgok, mint például, az elsődleges kulcsokat. Alapértelmezésben RoR feltételezi, hogy a mező az elsődleges kulcs nevű azonosítója (ami mellesleg nagyon ésszerű), de lehet javítani úgy, hogy írásban set_primary_key „kitob_cifra”.

Az egyik a néhány helyen, ahol meg kell beállítani ezt a fájlt /config/database.yml, amelyben meg kell adni a típusát és az adatbázis nevét. Érdemes megjegyezni, hogy a fejlődés használata javasolt három azonos adatbázist a három állam a rendszer: a termelés, a fejlesztés és teszt. Ahogy a neve is sugallja, ez a termelési bázis stabil változat a rendszer, fejlesztés - fejlesztésére és vizsgálat célja az automatizált teszteket.

database.yml fájl Példa:

fejlesztés:
adapter. mysql
adatbázisban. books_development
felhasználónév. gyökér
jelszót. jelszó
host. localhost

teszt:
adapter. mysql
adatbázisban. books_test
jelszót. jelszó
host. localhost

termelés:
adapter. mysql
adatbázisban. books_production
jelszót. jelszó
host. localhost


A mai napig, a Ruby on Rails támogatja adatbázisok, mint a MySQL, DB2, PostgreSQL, Oracle, SQLite, MS SQL Server.

Ez még nem minden, hogy kapcsolódik a ActiveRecord és nem szóltam a táblák közötti kapcsolatok, tranzakciók, összesítése, visszahívások és így tovább. Ez egyszerűen nem része a méret ezt a cikket. Én csak megjegyezni, hogy majdnem mindent RoR realizált elragadóan egyszerű. Meg kell adnia az asztalon egy fa tárgyak, rendezve a név mező? Semmi sem egyszerűbb!

osztály Kategória acts_as_tree. order => "név"
vég


Így láttuk, hogy a szint adatok RoR hajtják végre egy egyszerű és ugyanabban az időben, egy nagyon hatékony eszköz - ActiveRecord, amelyik a túlnyomó többsége a rutinszerű műveletek és lehetővé teszi, hogy összpontosítson a maga feladata. Legközelebb fogok beszélni a szint az üzleti logika „sínen”, azaz mintegy vezérlők.

Kapcsolódó cikkek