Scrierea modulelor este floare la ureche dacă sunt bine făcute specificațiile de programare. În specificații rezultă:
- lista modulelor;
- legăturile dintre module;
- listele de parametrii;
- formulele de calcul;
- restricții de validare;
- rezultatele returnate;
- cazurile de excepție și tratările lor;
- cu ce module relaționează;
- ce trebuie testat.
Modulele se scriu separat de diferiți programatori. În lipsa specificațiilor toți din echipă lucrează după ureche și nu știe stânga ce face dreapta. Va fi numai o persoană care știe totul și ceilalți îl vor toca cu tot felul de întrebări, dar cu siguranță acestuia îi place să dea cu pipeta, ca să fie și să rămână stăpânul inelelor, în lipsă de alte talente și mai ales de autoritate și de disciplină de producție.
Am avut norocul să lucrez cu mari programatori de la care am învățat lucruri deosebit de importante. Am avut ocazia să citesc documentație de la IBM unde erau exemple de programe cap-coadă, foarte bine construite, excelent documentate, de unde am învățat. În vremurile de demult revista Commnuications of the ACM avea pe ultimele pagini prezentări de algoritmi și de programe preponderent Algol sau FORTRAN, scrise de maeștii, de unde am învățat multe lucruri.
Cei care mi-au dat să scriu programe în tinerețea mea nu zic că mi-au dat specificații dar:
- mi-au dat notițe din care înțelegeam destul de multe despre bucata de program ce trebuia s-o scriu eu sau aiscuții cu ei și eu îmi notam așa fel încât știam destul de bine cum stăteau lucrurile; unii dintre ei îmi puneau restricții legate de numărul de instrucțiuni IF sau PERFORM, dar și de câte ciclări să am în procedură; nu mai vorbesc de faptul că toți doreau un singur RETURN în textul scris de mine; în acele vremuri de pionierat, chiar eu ca programator îmi făceam niște tabele și dacă apăreau coloane fără steluțe însemna că am variabile definite și nefolosite; în alte tabele îmi dădeam seama că ceva lipsește la modulele ce-mi reveneau; era un motiv în plus să cer elemente suplimentare; oricum când scriam textul totul îmi era clar și nu aveam nicio ezitare, dar nu mă scărpinam în nas ducând mâna pe la ceafă;
- mi-au dat destule elemente de care să mă folosesc, chiar și alte proceduri și mai ales elemente de bibliotecă din care rezultau ce definiri existau deja făcute ca eu să scriu oarece proceduri astfel încât ceea ce am scris eu să se integreze în lucrarea mare; acolo vedeam și stil de programare și particularități de utilizare a ceea ce era deja definit de predecesorii mei; îmi amintesc că un conducător de proiect avea o imprimantă cu lista de erori pe care trebuie să le dentific în datele de intrare și cum să le semnalez; aveam modalitatea de a scrie secvențele și este clar că făcând ca acolo, eu asiguram omogenitatea textului meu în raport cu ce era scris deja; de acolo mi-am făcut regula ca variabila de control i să fie folosită pentru a traversa liniile unui masiv bidemnsional, iar variabila j să fie utilizate pentru a traversa coloane; tot de la programatorii pe care i-am cunoscut am învățat să pun p la numele variabilelor pointer; de la ei am învățat să asigur ortogonalitatea numelor de variabile dar și multe, multe altele.
Nu e ușor să se scrie texte sursă, dar nici imposibil. Totul este ca acele programe să nu fie scrise așa cum fac pseudofolcloriștii de azi care se laudă la Tv că ei scriu cântece pe bandă rulantă. Eu știu de la un cenaclu literar de la mine din provincie, că pentru a scrie poezie de calitate, trebuie citită multă poezie. Și în programare este la fel. Înainte de a scrie programe, programatorul trebuie să citească multe texte sursă scrise de alți programatori, dar de programatori valoroși, iar numai după ce are o cultură solidă să se apuce să scrie. Îmi aduc aminte că pe când eram licean așteptam ultima săptămână din an ca să cumăr revista Luceafărul a lui Eugen Barbu ca să citesc penultima pagină unde erau publicate cele mai proaste poezii trimise la redacție de-a lungul anului. TCântecele făcute de artiștii de folclor cu cultură precară de azi de acele vremuri îmi amintesc. Am văzut și programe prost scrise care mă duc cu gândul tot acolo și nu am nicio explicație de ce se întâmplă așa ceva.
Scrierea modulelor este singura activitate din care se vede cum arată produsul software, cel ce aduce sau nu performanță, cel care face sau nu face ceea ce dorim noi ca utilizatori sau ei ca programatori să facă.
(01 decembrie 2017)
No comments:
Post a Comment