Conventii de scriere a numelor in programare

Majoritatea aplicatiilor software, precum website-uri, aplicatiile de mobil sau desktop sunt construite cu ajutorul limbajelor de programare care ne ajuta sa le concepem, sa scriem comenzi care sa prelucreze si sa returneze anumite informatii catre utilizatori, rezolvand anumite probleme in viata cotidiana, de cele mai multe ori fiind lucruri repetitive. Ca in orice limba straina, si in limbajele de programare conteaza foarte mult modalitatea in care scriem datele noastre, numele de constante, de variabile sau functii, astfel incat sa intelegem si noi, oamenii, despre ce e vorba in acel cod, dar sa inteleaga si calculatorul pentru a citi si executa codul respectiv.

Conventiile de scriere in programare: definire, necesitate si aparitie

Pentru a putea scrie intr-un mod ordonat comenzile si liniile noastre de cod in fisierele unei aplicatii, de-a lungul timpului au fost elaborate mai multe conventii de scriere a numelor in programare, numite si Programming Naming Conventions sau Case Types. Acestea reprezinta practic o anumita regula unitara de scriere a numelor de variabile, de constante sau de alte elemente (functii, clase) in fisierele de cod ale unei aplicatii, astfel incat aceste nume sa fie usor de citit si de inteles atat de oameni, cat si de computer pentru executie.

Trebuie mentionat ca acesta din urma nu gandeste asa cum o fac oamenii, el interpreteaza diferit fiecare caracter, chiar si un simplu spatiu gol uitat in numele unei variabile risca sa fie citit ca fiind doua nume distincte, lucru pe care noi nu il dorim. De exemplu, daca avem variabila customer age = 35 atunci  calculatorul va interpreta customer si age ca fiind 2 elemente diferite din cauza spatiului lasat gol intre ele.

Riscul cel mai mare daca nu respectam nicio regula de scriere este acela ca liniile noastre de cod nu vor putea fi citite, interpretate si executate de catre calculator, deci codul nostru va fi inutil. Conventiile de scriere au aparut astfel ca o necesitate fireasca pentru programatori, concomitent cu aparitia si dezvoltarea limbajelor de programare, si implicit dupa ce a crescut complexitatea produselor software ce erau lansate pe piata.

Camel Case

O prima tehnica de scriere a numelor in programare extrem de cunoscuta si folosita este intitulata Camel Case. Numele acesteia, precum si a celorlalte conventii de scriere dupa cum vom vedea in continuare, este legat de modul in care se scriu respectivele nume de elemente in programare. Mai exact, conventia Camel Case presupune sa scriem numele de variabile sau functii legate una de cealalta, fara alte elemente, si doar prima litera sa fie scrisa cu majuscula, restul cu minuscule, inclusiv prima litera a primului cuvant.

Ilustratie – Camel Case

Ca exemplu, vom scrie numele noastre sub forma customerAge, productName sau numberOfBuildings. Aceasta conventie este folosita frecvent in programare pentru simplitatea ei si pentru ca se pot scrie nume mai lungi fara a depasi o limita exagerata de caractere. Este folosita frecvent in limbaje precum Java, JavaScript sau TypeScript, atat pe partea de Backend, cat si pe Frontend.

Pascal Case

Aceasta a doua conventie este derivata si extrem de asemanatoare cu Camel Case. Numele elementelor se scriu de asemenea legate, fara alte simboluri de legatura (precum cratima), singura diferenta fiind aceea ca se scrie cu litera majuscula inclusiv prima litera a primului cuvant. Ca sa exemplific tehnica Pascal Case, voi scrie variabilele noastre de mai sus astfel: CustomerAge, ProductName, NumberOfBuildings.

Ilustratie – Pascal Case

Este deci la fel de usor de citit ca si tehnica Camel Case, poate un pic mai intuitiva pentru oameni de folosit ca urmare a faptului ca din scoala suntem invatati sa scriem mereu primul cuvant dintr-o fraza cu litera mare.

Snake Case

O alta conventie de scriere a numelor in programare extrem de populara in IT este cea numita Snake Case. Numele ei are de asemenea legatura cu modul in care se scriu numele elementelor, asemanatoare cu un sarpe. Aceasta conventie se ghideaza dupa regula ca numele compuse sunt separate prin semnul “_” (underline), fara a mai folosi deloc majusculele. Pentru a oferi niste exemple, variabilele noastre vor avea deci forma: customer_age, product_name, number_of_buildings.

Ilustratie – Snake Case

Avantajul major al acestei tehnici de scriere este acela ca usureaza pentru mintea umana citirea elementelor deoarece, prin folosirea underline-lui, apare intre cuvinte un spatiu partial care face denumirea si mai usor de citit. Este folosita extrem de frecvent in cele mai multe dintre limbajele de programare, in Python, Java (Backend), sau in JavaScript (Frontend).

Kebab Case

Asemanator cu situatia primelor 2 conventii prezentate, Kebab Case este si ea o conventie derivata din alta, in acest caz din Snake Case. Regula ei este ca se folosesc in continuare doar litere mici, iar separarea elementelor din nume se realizeaza cu ajutorul cratimei “-“. Ca exemple, vom avea: customer-age, product-name, number-of-buildings.

Ilustratie – Kebab Case

Fiind extrem de asemanatoare cu Snake Case (si de multe ori confundate una cu cealalta), Kebab Case este si ea o tehnica de scriere foarte buna si usor de inteles de oameni si calculatoare, fiind folosita pe scara larga in majoritatea limbajelor de programare.

Recomandari si bune practici

Dupa cum am vazut, exista destul de multe conventii de scriere a numelor in programare, inclusiv multe altele pe langa cele prezentate (sau pe care le puteti regasi in alte locuri sub alte denumiri). Legat de acestea, exista cateva recomandari si bune practici.

Principiul comun care le guverneaza pe toate este consistenta si caracterul lor unitar. De cele mai multe ori nu exista o regula stricta care sa te oblige sa folosesti o anume conventie. Insa o data ce ai ales si ai inceput sa aplici o anume tehnica de scriere, e esential sa o folosesti constant pana la final, sa nu le combini sau sa le schimbi pe parcurs, pentru ca altfel te vei incurca pe tine si pe colegii tai, daca lucrezi in echipa (lucru extrem de frecvent in IT). Daca ai ajuns sa fii implicat intr-un proiect pe parcurs, cand exista deja o conventie adoptata, atunci aplic-o pe aceea, nu o schimba ca sa nu apara probleme.

De asemenea, au fost elaborate de-a lungul timpului mai multe ghiduri de stil (Style guides) pentru cea mai mare parte a limbajelor de programare. Acestea sunt disponibile online pentru limbaje ca Java, Python, C++, C#, PHP, JavaScript sau Go.

Ca preferinta personala, folosesc frecvent conventiile Snake Case sau Kebab Case, pentru ca mi se par mai usor de urmarit si citit, mai ales cand revin la un proiect personal mai vechi si trebuie sa ma uit peste fisierul de cod ca sa vad ce am scris acolo (lucru combinat desigur cu existenta comentariilor), insa nu ezit sa utilizez si Camel Case, cand e nevoie.

Concluzii

In incheiere, conventiile de scriere a numelor de variabile sau functii in programare sunt extrem de importante si necesare, ele aparand ca o nevoie naturala a programatorilor de a fi clari si consistenti in scrierea elementelor care compun liniile de cod, astfel incat sa fie intelese atat de mintea umana, cat si de calculatoare.

Consider ca e necesar sa le cunoastem pe cele principale, deoarece ne putem confrunta zilnic cu ele, asemanator cu intalnirea anumitor termeni specifici unui job in IT fara de care nu putem intelege ceea ce facem, e necesar sa stim diferentele dintre ele si sa le aplicam cat mai unitar, fie dupa preferintele personale, fie dupa cum s-a stabilit la nivelul echipei care lucreaza la un proiect mai mare, situatie in care e nevoie sa fim familiarizati cu ele.

Surse consultate si suplimentare

Despre principalele conventii gasiti detalii 👉 aici, iar despre stiluri si sfaturi 👉 aici.

Wikipedia despre Conventii de scriere in programare: https://en.wikipedia.org/wiki/Naming_convention_(programming)

Alte conventii si detalii despre acest subiect: https://juniortoexpert.com/en/naming-convention/

Mircea-Gabriel Macarie

https://www.linkedin.com/in/mirceamacarie/

Tech enthusiast și QA engineer, membru al comunității Vlog De IT. Interesat de testare software (QA) în general, de User Experience și Web Development.

Related post

Leave a Reply

Your email address will not be published. Required fields are marked *