AJAX

AJAX: Degradare gratioasa

Una din provocarile intalnite in crearea unei aplicatii este necesitatea ca aceasta sa functioneze pentru un numar cat mai mare de utilizatori. Printre aspectele care trebuie acoperite in acest sens se numara si degradarea gratioasa a respectivei aplicatii. Pe scurt functionalitatile principale trebuie sa fie prezente indiferent de tehnologiile la care are acces utilizatorul.

Asigurarea functionarii unei aplicatii ce foloseste AJAX si in cazul in care din diferite motive Javascript nu mai functioneaza (fie datorita dezactivarii sale fie din cauza aparitiei unei erori) nu este dificila, si una din cele mai simple metode este de a proiecta initial aplicatia fara a se face uz de AJAX (dar cu planuirea atenta asa incat implementarea solutiei alternative sa se faca cat mai simplu apoi). In momentul in care totul functioneaza cum ar trebui se poate trece la schimbarea comportamentului aplicatiei pentru cazul optim.

Ca exemplu, voi prezenta o mica aplicatie pentru filtrarea unor articole prezente intr-o baza de date.

„Edit In Place” Folosind jQuery

În urmă cu câteva zile, am primit un task destul de înteresant de la un client: aşa numitul „edit in place” (EIP). Cum la tot site-ul am folosit jQuery (deoarece mi se pare mai simplu decât prototype, iar alături de interface-ul făcut de eyecon este chiar mai tare), am vrut să folosesc un EIP făcut tot cu jquery, mai ales că toate plugin-urile găsite nu m-au satisfăcut pe deplin.

Trebuie să precizez că nu sunt un „guru” al javascriptului, din contră, încă fac primii paşi. Nu spun că aceasta este cea mai bună soluţie pentru EIP, doar că această soluţie s-a potrivit cel mai bine nevoilor mele.

O noua versiune a YUI Library

A fost lansata o noua versiune a YUI Library, framework-ul javascript dezvoltat de Yahoo!. Una dintre cele mai importante modificari e ca versiunea publica a librariei a fost unita cu cea interna folosita de Yahoo!, de aici si saltul de la 0.12.2 la 2.2.0 ca numar al versiunii.

Au mai fost introduse si multe alte noutati printre care cele mai importante par a fi trei componente:

1) Browser History Manager - o componenta (definita ca experimentala) ce ar trebui sa rezolve problemele de functionare ale butoanelor Inainte/Inapoi in browser atunci cand se modifica o pagina in mod asincron;

2) DataTable - permite afisarea accesibila a tabelelor, sortarea coloanelor, paginare, scrolling, selectarea liniilor tabelelor, modificarea dimensiunilor coloanelor si inline editing a datelor;

3) Button Control - o componenta cu ajutorul careia se poate modifica aspectul butoanele din formuri, independent de sistemul de operare utilizat.

De asemenea, a mai fost anuntat ca framework-ul va putea fi folosit in proriile proiecte lasand ca fisierele librariei sa fie gazduite pe serverele Yahoo!.

Stick to the frameworks

Intr-o lume in care aplicatiile web devin din ce in ce mai complexe si majoritatea lucrurilor cu adevarat utile de pe desktop se porteaza pe web, programarea in sine, indiferent de limbajul de programare a devenit o mare consumatoare de timp, resurse, cu alte cuvinte eficienta.
In ultimul timp, programatorii web care-si cunosc telurile si care se descurca destul de bine cu programarea orientata pe obiecte au inceput sa foloseasca framework-uri (in special MVC - Model View Controller) ca sa-si usureze munca. Si s-a dovedit ca framework-urile nu doar ca usureaza munca programatorului, dar adauga si un plus de securitate si integritate aplicatiei.

Exemplul perfect este framework-ul CakePHP pe care-l folosesc de mai bine de 6 luni si de cand lucrez proiectele pe el, ma misc mai repede si mi-e mult mai usor sa adaug functionalitate website-ului.
CakePHP este desi foarte puternic, destul de lipsit de multe facilitati pe care le-ar putea implementa echipa (probabil in versiunile ce urmeaza), dar pe de alta parte este exact ce ai nevoie ca proiectarea unei aplicatii sa fie cake.

Un lucru pe care l-am vazut zilele trecute si care mi-a atras atentia indeajuns de mult cat sa raman pe subiect cateva zile si sa studiez, a fost un alt framework MVC, numit Symfony.
Acest Symfony este mult mai complex decat CakePHP dar mult mai greu de folosit. Se orienteaza catre segmentul de programare enterprise, acolo unde aplicatia va fi instalata pe serverul propriu al firmei... and so on.
Destul de stresanta pentru tine, ca om care vrei sa vezi ce poate, e instalarea: trebuie sa ai PEAR > 1.4.2. Apoi se adauga un nou canal la PEAR, de unde isi ia proiectul Symfony si se instaleaza. Din momentul ala exista comanda "symfony" in consola si se lucreaza cu ea orice s-ar face. Cam asta e baza.

Pe mine m-a uimit foarte tare cum lucreaza si cum se configureaza. Daca la CakePHP nu faci decat sa creezi fisiere si sa scrii in ele, aici nici macar nu le mai creezi, doar schimbi prin ele variabile, si adaugi proprietati.
Sistemul de retinere a datelor de configurare este format din fisiere .yml (http://www.yaml.org/) si e foarte intuitiv.
Un lucru care o sa uimeasca multi developeri este admin-generator-ul care e o componenta care genereaza pagini de administrare pentru continutul site-ului si nu numai.
Il puteti urmari in actiune aici (doar pentru coderii dedicati, daca va plictisiti nu va uitati :D)

Tags: