( Calitatea variabilelor) ©

Nu vreau decât să arăt marea problemă a anului 2000 care s-a produs pentru programele scrise în limbajul COBOL, programe în care pentru an se repartizau câmpuri de doi baiţi, cu reprezentare zecimal despachetată. Totul s-a făcut în ideea că un program va gestiona facturi din toate zilele şi din toţi anii de la 1900 la 1999, folosind de la 00 la 99. Numai că apariţia noutăţii legate de anul 2000 a generat o mare problemă, fiind necesar să se lucreze cu numere de patru cifre şi nu cu două cifre cum se lucrare până atunci.
Acela a fost cazul clasic de definire neadecvată a tipului de variabilă, ceea ce a influenţat dramatic evoluţia programelor aflate în uz curent cu câmpuri definite pe doi baiţi. dacă s-ar fi trecut la alt tip de variabile, integer short, menţinând cei doi baţi, dar cu o altă reprezentare, s-ar fi realizat fără dificultate reprezentarea constantelor întregi de la 0000 la 9999, adică s-ar fi rezolvat problema anului 2000, mai ales că tot ce ar fi avut valori de la 00 la 99 se referea la secolul al XX-lea, iar valorile secolului al XXI-lea ar fi avut numere cu patru cifre, ceea ce în programare s-ar traduce prin prelucrări banale.
Tot aici ar intra şi penibilele calcule legate de structura codurilor pentru numerele de înmatriculare ale autovehiculelor. Teoria este clară şi referitoare la numărul de elemente care se pun în corespondenţă cu codurile şi în legătură cu posibilitatea de a reţine parţial fragmente de cod care să faciliteze identificarea de autovehicule cu probleme. Practica însă joacă feste şi apar situaţii hilare, ca şi la numerele de telegfon care nu au ţinut seama la explozia generată de telefonia mobilă.
După părerea mea, când citim un program, ne dăm seama de calitatea lui după cum programatorii aleg:
- numele variabilelor,
- să menţină ortogonalitatea identificatorilor,
- tipurile variabilelor,
- lungimile de zone de memorie alocate,
- să construiască structuri de date agregate,
- să gestioneze listele de parametrii.
Limbajele de programare au particularităţi în a construi numele de variabile. Dacă limbajul de programare face diferenţa între literele mici şi cele mari, programatorul va folosi acest lucru şi va asigura creşterea lizibilităţii prin definiri de variabile de tipul PretUnitar, NumeStudent fără a folosi caractere speciale care într-un anumit context ar genera situaţii ambigue, căci între cantitate-pret şi cantitate_pret diferenţele sunt uriaşe, prima fiind expresie aritmetică, iar a doua este identificator.
Programatorii şi analiştii cu experienţă aleg nume de variabile:
- scurte,
- sugestive,
- obişnuite,
- recognoscibile,
- simple,
- comune,
- neambigue,
- necriptate.
Am văzut programe cu denumiri de variabile care permiteau depanare într-un mod natural, dar am văzut şi programe încâlcite nu ca algoritm implementat, ci ca denumiri de variabile utilizate şi mai ales, reutilizate într-un ritm nejustificat, încât algoritmul nu mai era uşor de urmărit, nefiind o corespondenţă între program şi schemele logice şi specificaţii.
Fiecare programator îşi face regulile lui în a defini şi utiliza variabilele, dar cred că dacă o echipă stabileşte nişte principii, toţi membrii ei trebuie să le folosească şi textele sursă vor fi omogene, la fel şi specificaţiile, la fel şi documentaţia. Orice altă abordare creează fisuri în structura reală a produsului software şi a elementelor ce-l însoţesc.



                                                                                                                                                                                                    Înapoi