În prima postare despre variabilele globale am văzut cum programatorul cu mintea deschisă își poate pune întrebări îndreptățite despre justețea proverbului care spune că e bine să evităm variabilele globale.
Azi aș vrea să vă fac cunoștință cu programatorul de nivel 2. Vă rog să-l primiți cum se cuvine pe Programatorul-Care-Știe-Că-Variabilele-Globale-Nu-Sînt-Bune!
În cele ce urmează îl vom numi folosind inițialele: PCȘCVGNSB (pentru simplificare).
Așadar PCȘCVGNSB a aflat că variabilele globale au probleme asociate poate citind la Radio Zu, poate văzînd în Prosport sau la emisiunea Uraniei (o fi corect Uraniei sau lui Urania? – e un nume așa de la limită). Important e că informația i-a parvenit (de cînd încercam să găsesc un context pentru expresia asta!…). Ce nu i-a parvenit a fost motivul pentru care variabilele globale nu sînt bune.
Partea bună e că PCȘCVGNSB înțelege greutatea și importanța tradițiilor și, respectîndu-și înaintașii, încearcă din răsputeri să țină seama de ele. Partea nu chiar atît de bună e că răsputerile-i sînt limitate (să nu uităm că e vorba de nivelul 2 deci există circumstanțe atenuante).
Cum arată codul scris de PCȘCVGNSB? Păi în mod evident (alt cuvînt drag mie), PCȘCVGNSB va evita pe cît posibil variabilele globale, folosind aproape întotdeauna variabile locale.
Astfel, în superpseudocod, situația se prezintă după cum urmează:
int variabilaglobala1, variabilaglobala2, variabilaglobalaN;
functie utila()
int variabilalocala1, variabilalocala2, variabilalocalaN;
variabilalocala1 = variabilaglobala1;
variabilalocala2 = variabilagloabala2;
variabilalocalaN = variabilaglobalaN;
alte instructiuni trebuincioase;
variabilaglobala1 = variabilalocala1;
variabilaglobala2 = variabilalocala2;
variabilaglobalaN = variabilaglobalaN;
end functie
Observați istețimea cu care evită (pentru optimizarea vitezei – în mod aproape sigur) să trimită funcției parametri DAR în același timp folosește la minimum variabilele globale. Se confirmă încă odată – dacă mai era nevoie – că nivelul 2 nu este unul facil dar în mod sigur, conform altui proverb, este o etapă necesară pentru a ajunge la nivelul 3.
Eu fiind absolvent de nivelul 3 am observat cursa ce ne-ai instins: de fapt PCȘCVGNSB totusi foloseshte variabile globale chiar daca local le copiaza in variabile locale. Deci cu toate ca stie ca nu sint bune nu se poate abtine sa nu le foloseasca.