[webdev] Proiectul de curs
"Ionuț G. Stan"
ionut.g.stan at gmail.com
Sat Jan 14 16:49:14 EET 2012
On Jan/14/2012 16:04, "Ionuț G. Stan" wrote:
> On Jan/14/2012 10:22, Dan Filimon wrote:
>> Salut!
>>
>> După ultima revizie a planurilor am vrea să stabilim un proiect pe
>> care să-l folosim pentru a motiva diversele prezentări.
>> Astfel, am decide uite, vrem să dezvoltăm ceva ca StackOverflow. Hai
>> să vedem ce implică asta pas cu pas și toate cursurile să fie făcute
>> din unghiul ăsta.
>
> Nu mi-e clar un aspect. Proiectul ăsta când va fi realizat? După
> cursurile propriu zise, adică în perioada Hackday-urilor din aprilie și
> mai, sau de-a lungul cursului?
Ok... brain dump ahead. Constructive criticism more than welcome.
Eu îl văd proiectul (e unul de Q&A doar pentru exemplificare) dezvoltat
treptat în fiecare dintre cursuri. Cam așa:
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.
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.
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.
4. Server-side Ruby: habar n-am... nu înțeleg de ce nu există atunci și
un echivalent "client-side JS".
Aici aș face un mic swap între următoarele două cursuri. Model vs. views
+ controllers.
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.
7. JS2. Listare, creare comentarii. Up/down votes. JSON, chestiuni de
securitate.
8. APIs. Am putea lista Twitter feed-ul pentru contul rosedu într-o
coloana a site-ului.
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ță.
--
Ionuț G. Stan | http://igstan.ro
More information about the webdev
mailing list