[webdev] Proiectul de curs

Alex Morega alex at grep.ro
Sun Jan 15 22:21:34 EET 2012


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

> 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.

N-aș povesti prea multe pe un exemplu complex de genul "stackoverflow" pentru că le arătăm foarte multe lucruri deodată și nu o să știe la ce să se uite. Mai bine le arătăm exemple simple pe care să le poată face cu mâna lor, ca să înțeleagă mecanismele, și se prind singuri cum mecanismele se îmbină să rezulte ceva de genul stackoverflow.

Pentru cursul de "fundamentals" mă gândesc să facem, în primul rând, o introducere în HTTP. Să implementăm un server HTTP basic, care să înțeleagă GET și POST, să servească fișiere statice și eventual să invoce CGI-uri. O să încerc zilele astea să implementez un astfel de server în C, nu cred că e prea greu (famous last words? :) Ideea e să vadă ce se întâmplă "on-the-wire" pentru că posibilitățile și restricțiile de aici influențează tot restul webdev-ului.

> 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.

Cu 2 și 3 sunt de acord. La 3 cred că trebuie să înțeleagă ce este DOM-ul și ce pot face cu el, plus niște idei de timeout-uri și callback-uri și event-uri. Cu alte cuvinte, "what Gabriel said" :)

> 5. […] 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).

N-am lucrat cu Rails, și de fapt ruby în general, dar am un feeling că Rails e prea complex pentru curs. Dacă ar fi cursul în Python, aș propune ceva de genul Flask, unde ai foarte puțin zgomot peste codul tău, și totul încape într-un fișier de cod plus template-uri. Cam așa e Sinatra, nu?

> 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ță.

Așa ceva. Securitate și scalabilitate sunt cam out-of-scope într-adevăr. Cred că e suficient să le spunem de XSS și SQL injection ca să le dăm o idee despre vectorii principali de atac.

-- Alex



More information about the webdev mailing list