DEV Community

Димитър Трифонов (dvt32)
Димитър Трифонов (dvt32)

Posted on • Edited on • Originally published at Medium

CODE TIPS #4 — Именуване на идентификатори (a.k.a “Спрете с ‘br’ и подобни”)

(Първо публикувано на 19.03.2016)

Всеки знае, че има значение как именуваме променливите си, когато пишем код. Едно просто правило — кодът трябва да е лесно четим и разбираем, защото в реалността големите проекти се разработват от екипи хора и шансът да сме единствените “свидетели” на гениалния си код е минимален. Всеки знае това… нали?

Чудех се как точно да демонстрирам някои лоши практики в именуването на идентификатори (именуване на променливи, класове, функции). И ето че открих чудесен пример — една програма, която беше пример от учебник, който целеше да ми покаже основите на обектно-ориентираното програмиране. Страшното беше, че дори и в неграмотно състояние виждах, че това е просто бъркотия!

Horrible variable naming

Просто гледайте.

Нека игнорираме:

  • използването на именното пространство **std**

  • public нивото на достъп на член-данните

  • използването на char масив вместо std::string

  • постинкрементацията на брояча във for цикъла

  • декларирането на променливи от различен тип на 1 ред

  • факта, че main() е от тип void, а не int, както е по конвенция

Нека забравим всичко и това и се съсредоточим само върху имената на идентификаторите.

Бих казал, че единствено името на класа Student си е OK, но това, предполагам, е абсолютна случайност.

1. Не използвайте български имена!

ЛОШО:

char Ime[11];
short Ocenki[11];
float Uspeh;
Enter fullscreen mode Exit fullscreen mode

ДОБРО:

char name[11];
short grades[11];
float average;
Enter fullscreen mode Exit fullscreen mode

Ако бяхте от друга страна и не знаехте български език — каква щеше да е реакцията ви, когато ви сервират първия вариант?

Просто използвайте имена на английски. Английският е единственият универсален език в света на програмирането

2. Не съкращавайте имената!

ЛОШО:

char KodOp; 
void SrUspeh();
int BrLica = 0;
float s = 0;
Enter fullscreen mode Exit fullscreen mode

ДОБРО:

char operationCode; 
void getAverage();
int numberOfStudents = 0;
float sum = 0;
Enter fullscreen mode Exit fullscreen mode

Няма нужда от съкращения в повечето случаи. По-ценно е кодът да е лесно разбираем, отколкото да е кратък. Постоянно виждам в примери променливи с имена по една буква. Понякога това е допустимо — ако искаме да илюстрираме някаква концепция от програмирането или пък да приложим някаква математическа формула, но в повечето случаи няма нужда от това.

Също така бих казал че изключение могат да направят например променливите за брояч във for цикъл, които имат малък обхват и няма да затруднят съществено четимостта на кода, тъй като съществуват единствено в цикъла.

3. Спазвайте конвенциите и бъдете постоянни!

Първоначално мислех да напиша за това, че обикновено класовете започват с главна буква, но проблемът се свежда до нещо по-общо — просто спазвайте конвенциите на езика, с който програмирате!

За всеки език е различно и задължение на програмиста да се информира за конкретните конвенции.

Още по-важно — бъдете постоянни. Ако ще пишете camelCase имена на променливи — добре, но се опитвайте да използвате този стил за всички променливи.

Това май са най-важните правила, които научих до този момент относно именуването… а сега отивам да бомбардирам всеки, който все още декларира променлива с име “br”. 😅

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.