[webdev] Proiectul de curs

Gabriel Voicu voicu_gabriel at ymail.com
Sun Jan 15 14:24:38 EET 2012


On Jan 14, 2012, at 4:49 PM, Ionuț G. Stan wrote:

> 
> Eu îl văd proiectul (e unul de Q&A doar pentru exemplificare) dezvoltat treptat în fiecare dintre cursuri. Cam așa:

+ 1

> 
> 1. Fundamente web: li se spune în mare ce înseamnă web și eventual prezintă chiar pe stackoverflow.com cam ce se întâmplă când cineva dă click acolo, sau face mouseover acolo, ce vezi dacă dai click pe "view source" în browser. Eventual se deschide un firebug și se arată cererile asincrone. Nu știu... s-ar prezenta workflow-urile specifice web în cazul stackoverflow.com, *cel puțin*. Ideal ar fi să existe cel puțin 2-3 exemple.

+ 1

> 
> 2. HTML & CSS: li se povestește despre HTML și CSS tot în contextul unui site de Q&A. Li s-ar putea arată o imagine cu ceea ce își imaginează artistul, apoi treptat se transpune imaginea în HTML + CSS. Practic, acum se fac view-urile folosite mai târziu în cursul de server-side views, dar și de client-side. Se învață practica folosirii Firebug pentru furarea de CSS de la alții mai învățați.
> 

+ 1

> 3. JS: se iau fișierele de la punctul 2 și se adaugă ceva interacțiune la ele. Nimic Ajax la punctul ăsta, asta ar urma în partea a doua de JS. Ce s-ar putea arată sunt chestii gen click on question title to toggle question content display. Click on "comment" link to open textarea. Validări de formular. Chestii din astea super ușurele.
> 

Da, aici ar trebui vazut cate chestii de JS merg facute la primul curs de JS, apoi vazut impartirea. Totusi, eu cred ca prezentare DOM + js events + callbacks + functii de manipulare dom + exemple practice ca cele pe care le-ai dat tu ajung pentru primul curs.

> 4. Server-side Ruby: habar n-am... nu înțeleg de ce nu există atunci și un echivalent "client-side JS".
> 

Scuze, nu inteleg la ce te referi prin client-side JS (adica cu ce difera de ce s-a prezentat in cursul 3)? Aici noi ne gandisem sa prezentam Ruby ca si limbaj, apoi o scurta introducere intr-un framework light, ca Sinatra, in care sa faca prima aplicatie server side.

> 
> Aici aș face un mic swap între următoarele două cursuri. Model vs. views + controllers.
> 

Daca nu le prezentam conceptul de model inainte, care se ocupa cu comunicarea cu baza de date, cum vom putea prezenta in cursul de views + controllers faptul ca un controller se comporta ca un "manager" intre model si view si ca nu e bine sa existe call-uri catre baza de date din controller?

> 
> 5. Views + controllers. Se creează controllere pentru principalele URL-uri ale site-ului, și se transpun template-urile HTML în template-uri... de care vrea prezentatorul, să zicem RHTML. Cred că va fi ceva de vorbit aici despre structura unui proiect Rails (dacă nu se vorbește deja la primul curs de server-side). Cereri POST ale căror date se rețin doar în sesiune, iar view-urile de listare răspunsuri și întrebări vor scoate de aici datele. În felul ăsta se poate vorbi despre sesiuni și redirect-uri fără să te legi de persistență.
> 
> 6. Models. Mmm... cred că e timpul să vă hotărâți ce framework folosiți pentru server-side, că nu prea putem trece la altul acum. Eu aș merge pe Sinatra, dar mă rog. Oricum, la punctul ăsta se poate trece la "modelarea" principalelor entități ale site-ului: question, response, user, etc. SQL, migrări... chiar, curs de SQL nu există? Se înlocuiesc acum modelele session-based cu astea DB-based. Se creează totodată și câteva acțiuni folosite în JS2 la partea de cereri Ajax.

Noi ne gandeam ca in cursul 4 sa folosim Sinatra, iar in cursurile 5 si 6 sa incepem cu Rails (pentru ca la urma urmei el este greul cand ne referim la "The Ruby World" :-D ). In plus, daca le prezentam Rails din timpul cursului, ii va incuraja sa-l foloseasca si la proiectele de la final.

> 
> 7. JS2. Listare, creare comentarii. Up/down votes. JSON, chestiuni de securitate.
> 

+ 1

> 8. APIs. Am putea lista Twitter feed-ul pentru contul rosedu într-o coloana a site-ului.
> 

+ 1

Am putea incerca si un Facebook Connect cu Devise, dar nu-mi dau seama daca ar fi prea complicat pentru ei.

> 9. Deployment. Nu prea-mi dau seama aici. Vreți să spuneți ceva despre Capistrano? Fabric? La partea de securitate, cred că ăsta e un subiect ce trebuie integrat în toate celelalte cursuri. SQL injection la modele. CSRF + XSS attacks la controllere + views. XSS, remote script execution, same origin policy la cele de JS. Scalabilitate... habar n-am, știu doar teorie aici, n-am niciun pic de experiență.
> 

La deployment ne gandeam sa explicam cum ajunge codul nostru pe web: cum configurezi un server (Apache, nginx, Thin), ce politici de securitate aplici (scoti login-ul cu parola prin SSH si il lasi doar pe cel cu cheie publica/privata, ...), cum cumperi un domeniu (le putem explica de GoDaddy sau alte servicii similare). Dealtfel, am putea prezenta solutii care fac deployment automat, ca Heroku [0].

Ce parere aveti?

[0] - http://www.heroku.com/

Gabriel Voicu
E-mail: voicu_gabriel at ymail.com
Skype: voicu_gabi
Phone: 0726283665

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rosedu.org/pipermail/webdev/attachments/20120115/fbeeb45b/attachment.html>


More information about the webdev mailing list