1 Acest ghid presupune
Acest ghid este destinat incepatorilor care vor sa creeze o aplicatie Rails de la zero. El nu necesita experienta anterioara in RoR, dar trebuie sa ai instalate pe calculator:
- Limbajul Ruby
- Pachetul RubyGems
- O versiune functionala a SQLite (de preferat), MySQL, sau PostgreSQL
Este recomandat sa te familiarizezi cu limbajul Ruby inainte de a aborda platforma Rails. Iti va fi cu mult mai usor sa urmaresti ce se intampla cu o aplicatie Rails daca intelegi sintaxa de baza Ruby. Rails nu te va ajuta prea mult la editarea aplicatiilor web daca nu ai experienta in limbajul pe care il utilizeaza. Exista cateva resurse bune, gratuite pe internet, pentru a invata Ruby, cum ar fi:
- Mr. Neighborly’s Humble Little Ruby Book
- Programming Ruby
- Why’s (Poignant) Guide to Ruby
2 Ce este Rails?
Rails este o platforma de dezvoltare a aplicatiilor web scrise in limbajul Ruby. Scopul ei declarat este dezvoltarea cat mai usoara a aplicatiilor web, urmand cateva principii generale cu privire la ceea ce orice developer are nevoie pentru a incepe. Cu alte cuvinte, iti permite sa scrii mai putin cod si sa obtii rezultate mai repede si mai eficient decat alte limbaje de programare si platforme.
Rails presupune ca exista intotdeauna o modalitate optima de a executa lucrurile si este creat pentru a incuraja acel mod – si in anumite cazuri pentru a descuraja alternativele. Daca inveti “Calea Rails”, probabil ca vei descoperi o crestere incredibila a eficientei. Daca persisti in a pastra obiceiuri vechi din alte limbaje de programare si vei incerca sa utilizezi modele invatate in alta parte, s-ar putea sa ai o experienta mai putin placuta.
Filozofia Rails include cateva principii generale:
- DRY (Don’t Repear Yourself - “Nu te repeta”) – sugereaza ca rescrierea aceluiasi cod de nenumarate ori este un lucru rau.
- Convention Over Configuration (Conventiile inaintea configuratiilor) – semnifica faptul ca Rails face presupuneri cu privire la ceea ce vrei sa faci si la modul de executie, in loc sa te lase de fiecare data sa te lovesti de fiecare detaliu prin fisiere nesfarsite de configurare.
- REST reprezinta cel mai bun model pentru aplicatii web – organizarea aplicatiilor in functie de resurse si de interogarile HTTP reprezinta cel mai rapid mod de implementare.
2.1 Arhitectura MVC
Rails este organizat pe arhitectura Model, View, Controller, denumita de obicei MVC. Beneficiile MVC includ:
- Izolarea logicii aplicatiei de interfata utilizatorului
- Usurinta mentinerii codului DRY
- Arata cu claritate unde isi au locul diverse tipuri de cod, pentru o intretinere mai usoara a aplicatiei.
2.1.1 Modele
Un model reprezinta informatia (datele) aplicatiei si regulile de manipulare a acesteia. In cazul Rails, un model este utilizat in principal pentru interactiunea cu tabelul corespunzator din baza de date. In majoritatea cazurilor, unui tabel din baza de date ii corespunde un model din aplicatie.
2.1.2 Views
Un view reprezinta interfata dintre utilizator si aplicatie. In Rails, view-urile sunt de obicei fisiere HTML continand cod Ruby imbricat, care se ocupa doar de afisarea datelor. In concluzie, view-urile au sarcina de a furniza date browserului web sau oricarei alte aplicatii care solicita informatii de la aplicatia ta.
2.1.3 Controlerele
Controlerele fac legatura dintre modele si view-uri. In Rails, controlerele sunt raspunzatoare de procesarea solicitarilor venite de la browserul web, de interogarea modelelor de date si de transmiterea acelor date catre view pentru a fi afisate.
2.2 Componentele Rails
Rails furnizeaza un pachet complet pentru crearea aplicatiilor web, inclusiv:
- Action Controller
- Action View
- Active Record
- Action Mailer
- Active Resource
- Railties
- Active Support
2.2.1 Action Controller
Action Controller reprezinta componenta care administreaza controlerele intr-o aplicatie Rails. Platforma Action Controller proceseaza solicitarile venite catre o aplicatie Rails, extrage parametrii si ii distribuie actiunii dorite. Serviciile furnizate de Action Controller includ administrarea sesiunilor, randarea template-urilor si administrarea redirectionarilor.
2.2.2 Action View
Action View administreaza view-urile aplicatiei. Poate genera in mod prestabilit formate HTML si XML. Action View administreaza randarea template-urilor, inclusiv template-uri imbricate si partiale si include suport pentru AJAX.
2.2.3 Active Record
Active Record reprezinta baza modelelor unei aplicatii Rails. Ofera independenta bazei de date, functionalitatea de baza CRUD, capacitati avansare de identificare si posibilitatea de a combina modelele intre ele sau cu alte servicii.
2.2.4 Action Mailer
Action Mailer reprezinta platforma pentru gestionarea serviciilor de e-mail. Poti utiliza Action Mailer pentru a trimite emailuri bazate pe template-uri flexibile sau poti receptiona si procesa mailurile primite.
2.2.5 Active Resource
Active Resource ofera platforma pentru administrarea conexiunilor dintre obiectele aplicatiei si serviciile web RESTful. Implementeaza un mod de reprezentare a resurselor web ca obiecte locale cu ajutorul semanticii CRUD.
2.2.6 Railties
Railties este codul de baza Rails care construieste noi aplicatii Rails si leaga diversele componente intre ele in orice aplicatie Rails.
2.2.7 Active Support
Active Support reprezinta o colectie extinsa de clase utilitare si extensii ale librariilor standard Ruby, care sunt utilizate atat de codul de baza, cat si de aplicatiile tale.
2.3 Arhitectura REST
REST (Representational state transfer) este un model de arhitectura software pentru resurse distribuite, cum este internetul.
In sensul cel mai strict, REST reprezinta o colectie de principii pentru arhitectura unei retele, ce definesc modalitatile de creare si adresare a resurselor. Termenul este utilizat si pentru a descrie orice interfata simpla ce transmite date prin protocolul HTTP, fara a utiliza protocoale aditionale (SOAP), sesiuni sau cookie-uri HTTP.
REST ofera doua elemente principale:
Utilizarea unor identificatori pentru resurse (care, in scopul discutiei, pot fi priviti ca URL-uri)
- Transferul starii resurselor intre componentele sistemului.
De exemplu, pentru o aplicatie Rails, o solicitare de genul:
va fi interpretata ca o referinta la o resursa foto cu ID-ul 17, pentru a indica o actiune dorita – stergerea respectivei resurse.
Daca doresti sa afli mai multe detalii despre arhitectura REST, aceste resurse sunt destul de abordabile:
A Brief Introduction to REST de Stefan Tilkov
- An Introduction to REST (tutorial video) de Joe Gregorio
- Representational State Transfer articol in Wikipedia
- How to GET a Cup of Coffee de Jim Webber, Savas Parastatidis & Ian Robinson
3 Crearea unui nou proiect Rails
Urmand acest ghid, vei crea un proiect Rails denumit blog care reprezinta de fapt un blog web (foarte) simplu. Inainte de a incepe constructia aplicatiei, trebuie sa te asiguri ca ai instalat Rails.
|