(Първо публикувано на 19.03.2016)
Всеки знае, че има значение как именуваме променливите си, когато пишем код. Едно просто правило — кодът трябва да е лесно четим и разбираем, защото в реалността големите проекти се разработват от екипи хора и шансът да сме единствените “свидетели” на гениалния си код е минимален. Всеки знае това… нали?
Чудех се как точно да демонстрирам някои лоши практики в именуването на идентификатори (именуване на променливи, класове, функции). И ето че открих чудесен пример — една програма, която беше пример от учебник, който целеше да ми покаже основите на обектно-ориентираното програмиране. Страшното беше, че дори и в неграмотно състояние виждах, че това е просто бъркотия!
Просто гледайте.
Нека игнорираме:
използването на именното пространство **std**
public нивото на достъп на член-данните
използването на char масив вместо std::string
постинкрементацията на брояча във for цикъла
декларирането на променливи от различен тип на 1 ред
факта, че main() е от тип void, а не int, както е по конвенция
Нека забравим всичко и това и се съсредоточим само върху имената на идентификаторите.
Бих казал, че единствено името на класа Student си е OK, но това, предполагам, е абсолютна случайност.
1. Не използвайте български имена!
ЛОШО:
char Ime[11];
short Ocenki[11];
float Uspeh;
ДОБРО:
char name[11];
short grades[11];
float average;
Ако бяхте от друга страна и не знаехте български език — каква щеше да е реакцията ви, когато ви сервират първия вариант?
Просто използвайте имена на английски. Английският е единственият универсален език в света на програмирането
2. Не съкращавайте имената!
ЛОШО:
char KodOp;
void SrUspeh();
int BrLica = 0;
float s = 0;
ДОБРО:
char operationCode;
void getAverage();
int numberOfStudents = 0;
float sum = 0;
Няма нужда от съкращения в повечето случаи. По-ценно е кодът да е лесно разбираем, отколкото да е кратък. Постоянно виждам в примери променливи с имена по една буква. Понякога това е допустимо — ако искаме да илюстрираме някаква концепция от програмирането или пък да приложим някаква математическа формула, но в повечето случаи няма нужда от това.
Също така бих казал че изключение могат да направят например променливите за брояч във for цикъл, които имат малък обхват и няма да затруднят съществено четимостта на кода, тъй като съществуват единствено в цикъла.
3. Спазвайте конвенциите и бъдете постоянни!
Първоначално мислех да напиша за това, че обикновено класовете започват с главна буква, но проблемът се свежда до нещо по-общо — просто спазвайте конвенциите на езика, с който програмирате!
За всеки език е различно и задължение на програмиста да се информира за конкретните конвенции.
Още по-важно — бъдете постоянни. Ако ще пишете camelCase имена на променливи — добре, но се опитвайте да използвате този стил за всички променливи.
—
Това май са най-важните правила, които научих до този момент относно именуването… а сега отивам да бомбардирам всеки, който все още декларира променлива с име “br”. 😅
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.