momente şi schiţe de informatică şi matematică
anti point—and—click

Date (valori "brute") şi obiecte interne

javaScript | modelare obiectuală
2013 jan

Există o mare diferenţă între ceea ce tastează utilizatorul şi ceea ce corespunde imediat valorii respective, în cadrul aplicaţiei care preia datele.

Lucrurile se petrec la fel ca în viaţa obişnuită; la intrarea într-un anumit sistem social, individul respectiv primeşte din start anumite atribute (cum ar fi: un cod numeric personal; o legitimaţie de student; o ţinută vestimentară specifică sistemului, sau un echipament de protecţie; etc.) şi trebuie să-şi însuşească din start anumite reguli şi proceduri comportamentale de bază. Funcţionarea sistemului respectiv implică operarea cu indivizi astfel pre-educaţi.

În mod inerent, la intrarea în aplicaţie valoarea "brută" respectivă este mai întâi "educată" (în mod specific limbajului subiacent), dobândind astfel şi anumite "competenţe" standard. În fond, o variabilă (în limbaje de programare de nivel înalt) este o valoare "educată" - însemnând nu numai valoarea "brută" dar şi asimilarea unor anumite proprietăţi şi deprinderi pe care - "avansată" astfel la statutul de obiect intern - le poate exersa ea însăşi. Iată o mică ilustrare a acestui fapt, pentru javaScript:

Pe de altă parte, "marea diferenţă" apare atunci când aplicaţia are de integrat datele brute într-un anumit context, special constituit pentru acestea (de exemplu, într-o bază de date existentă pe hard-disk); de obicei, contextul respectiv impune anumite condiţii de validitate, pentru datele preluate (de exemplu, se cere numele şi nu un nume ambalat cu diverse "formatări").

În plus, contextul global Web impune şi el anumite condiţii, pentru transferarea în siguranţă a datelor între aplicaţie şi browserele utilizatorilor (evitând intervenţii "străine" neautorizate, pe conexiunea dintre serverul care găzduieşte aplicaţia şi browserul utilizatorului acesteia).

Aspectele explicitate mai sus, privitoare la integrarea datelor "brute" într-o aplicaţie - constituie justificarea primară a unor construcţii complicate (modele de date, form-uri şi altele) apărute în framework-urile de dezvoltare a aplicaţiilor Web.

Astfel, un form (în Python-Django, la fel în PHP-Symfony, Perl-Catalyst şi altele) converteşte inputul în obiecte specifice aplicaţiei (analog în fond, cu ceea ce am arătat mai sus pentru javaScript).

Un form creează un "formular", menit să preia în cadrul aplicaţiei anumite date de la utilizator (analog cât de cât, cu ceea ce produce funcţia javaScript prompt(), folosită mai sus). Acest formular este prevăzut şi cu nişte câmpuri "ascunse", care leagă datele ce vor fi transmise, de cererea HTTP curentă şi de sesiunea de lucru a utilizatorului (asigurând că datele receptate au fost transmise prin completarea directă a formularului prezentat utilizatorului şi nu provin de la un terţ, "străin" aplicaţiei).

Form-ul respectiv asigură validarea după necesităţile aplicaţiei, a datelor introduse de utilizator în casetele formularului; dacă datele sunt valide, atunci ele sunt convertite în obiecte specifice limbajului subiacent, conform unor "şabloane" de obiect prevăzute în cadrul form-ului (şi eventual, în cadrul modelelor de date specificate pentru baza de date), ţinând cont de specificul aplicaţiei. Obiectele interne rezultate astfel sunt transferate spre prelucrare, celorlalte module ale aplicaţiei.

vezi Cărţile mele (de programare)

docerpro | Prev | Next