Diferente pentru propuneri/3-infoarena3 intre reviziile #26 si #27

Nu exista diferente intre titluri.

Diferente intre continut:

Nu avem suport de redenumire si stergere care sa pastreze istoria, si nici o idee resonabil de design care ar permite asa ceva in baza de date. Trebuie investigat daca se poate folosi subversion in loc de MySQL pentru fisiere versionate.
h3. Securitatea, si magia din wiki
h3. Securitatea si magia din wiki
Pe parcursul dezvoltarii infoarena2 ne-am dorit sa evitam pe cat posibil functionalitatea "magica" din wiki, si am mers prea departe. Am pornit de la idea ca orice pagina este o pagina de wiki, si paginile de probleme/useri/runde/news/blog sunt doar un caz oarecare de pagina wiki. Securitatea paginilor de probleme trebuie totusi sa fie subordonata problemelor. Noi am realizat asta adaugand un "descriptor de securitate" ca string pentru fiecare pagina de wiki. Pagina problema/adunare are la securitate un string "task: adunare", si asa vizibilitatea paginii depinde de vizibilitatea task-ului. Este un sistem prea generic, incurcat si greu de folosit sau extins.
Pentru a usura testarea am facut controllerele noastre de editare sa accepte un parametru de form absent drept "nu vreau sa editez acest parametru". Asta este foarte util in teste dar e un comportament artifical care a "nascut" niste bug-uri foarte urate. In retrospectiva a fost o idee proasta, care a introdus o cuplare oribila intre controllere si codul de test. Ambele sunt acum foarte greu de modificat.
Ar fi mai bine sa testam functii BL care nu au nici o treaba cu HTTP. Daca BL-ul este ok atunci sigur bug-urile din UI nu pot sa strice nimic in baza. UI-ul se poate testa apoi de mana, sau folosind ceva de genul 'selenium':http://www.openqa.org/selenium/
Ar fi mai bine sa testam functii BL care nu au nici o treaba cu HTTP. Daca BL-ul este ok atunci sigur bug-urile din UI nu pot sa strice nimic in baza. UI-ul se poate testa apoi de mana, sau folosind ceva de genul 'selenium':http://www.openqa.org/selenium/.
h3. Caching exagerat
* Cache de imagini redimensionate. Cand se cere o imagine redimensionata ea este salvata pe disc si se evita operatiile de grafic pentru avatari etc.
* Cache de obiecte din baza de date, folosind memcached sau eaccelerator. Acest cache tine obiecte de genul useri, task-uri si runde.
Acest ultim mod de caching are inclusiv suport de write-through (cand se salveaza un obiect se sterge cache-ul) care este foarte complex de implementat. Codul de cache este bagat prin foarte multe functii db_ si nu este deloc usor de inteles. Se combinat cod de DB, BL si caching in aceleasi functii.
Acest ultim mod de caching are inclusiv suport de write-through (cand se salveaza un obiect se sterge varianta din cache) care a fost foarte complex de implementat. Codul de cache este bagat prin multe functii db_ si nu este deloc usor de inteles. Se combina cod de DB, BL si caching in aceleasi functii.
Suportul de write-through nu este de fapt foarte util pentru ca evaluatorul si partea de web nu folosesc acelasi cache. Eventual am fost fortati sa facem rundele sa traiasca doar 5 secunde in cache. Mai mult, acest caching nu imbunatateste mult timpul de raspuns: Am masurat timpii de raspuns cu si fara cache la paginile de enunt si diferentele erau nesemnificative. Acest cod de caching complica mult codul si nu aduce nimic folositor.
Suportul de write-through nu este de fapt foarte util pentru ca evaluatorul si partea de web nu folosesc acelasi cache. Eventual am fost fortati sa facem rundele sa traiasca doar 5 secunde in cache. Acest caching nu imbunatateste mult timpul de raspuns: Am masurat de mult timpii de raspuns cu si fara cache la paginile de enunt si diferentele erau nesemnificative. Acest mod de caching complica prea mult codul si nu aduce nimic folositor.
 
h3. Interfata utilizator.
 
In infoarena2 nu exista nici un mod definitiv de face construi un form sau un tabel. Exista mai multe sisteme prin cod dar nici unul nu functioneaza definitiv. Avem tabele paginate ca macro-uri, dar sunt niste hack-uri destul de urate. Avem doua moduri "inteligente" de construit tabele (format_table si dataset-uri) dar unele sunt facute de mana. Avem un sistem de form-uri automate (pentru ia_parameter_values), dar este folosit doar partial si e foarte limitat. Nu avem un mod simplu si standard de face escape in html.
 
In general fiecare a facut cum l-a taiat capul. Pe toti ne-a taiat cam stramb.
h2. Idei pentru un plan de atac

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.