Skip to content

Latest commit

 

History

History
108 lines (75 loc) · 8.62 KB

README.md

File metadata and controls

108 lines (75 loc) · 8.62 KB

Код конвенции за малки котки

Така трябва да пишем код, за да не дразним любимите си асистенти

Защо имената имат значение ?

Писането на код е като писането на литературни произведения:

  • в криминалните романи трябва да има мистерия, драма и съспенс, не разкриваме лошия в първото изречение, дори да подозираме че убиеца е градинаря.
  • в публицистиката са възможни гръмки и преувеличени фрази, целящи опетняване на конкуренцията или инжектиране на ненужна паника
  • в еротичните новели има само напрежение и въображение.

Всяки един литературен жанър си има специфика и особености, ако сте читатели на някой от изброените, ще знаете точно какво да очаквате. В литературата можем да си служим с думи, в програмите си служим с конструкции, променливи и изрази.

Единствения начин да бъдем експресивни е като спазваме следните правила:

  • пишем код за хора а не за компютри - всичко трябва да е четимо и ясно
  • всяко едно име, трябва да комуникира своята история, предназначение и отношение спрямо заобикалящата го среда
  • трябва да спазваме конвенциите на езика, това са правила отразяващи болката и страданието на поколения програмисти, решили да облекчат живота си.

Програмистите често подхождат хитро, когато искат да привлекат вниманието на своите колеги. Един от триковете е променя на регистъра на буквите или добавянето на специални символи. Често ще споменаваме един от следните три подхода за именуване: PascalCase - при този подход - при съставяне на име всяка една от думичките в него започва с главна буква.

Word

MultyWord

ComplexMultyWordName

camelCase - при този подход - при съставяне на име първата думичка започва с малка буква а всички останали са с водеща главна.

word

multyWord

complexMultyWordName

snake_case - при този подход - при съставяне на име всяка една от думичките в него се изписва с малки букви, разделени с подчертаващо тире.

word

multy_word

complex_multy_word_name

Как да си кръщаваме проектите ?

Имената на проектите, които създавате в InteliJ отразяват идеята която трябва да разработите. Името на проекта и името на класовете, не трябва да съвпадат. Разглеждайте имената на проектите като механизъм за комуникация, които да съдържа в себе си същността на софтуера, който разработвате.

ПРАВИЛО

За именуване на проектите силно препоръчваме да се придържате към използването на PascalCase конвенция, но се допуска и известна креативна свобода.

Как да си кръщаваме класовете ?

Java е строг, агресивен но за сметка на това много несправедлив език. Подобно на вашите асистенти, той не търпи импоризации.

ПРАВИЛО

При именоване на класове, те задължително трябва да са съществителни имена, назоваващи обекти от реалния свет или абстрактни концепции.

ПРАВИЛО

При именоване на класове, задължително използвайте PascalCase конвенция.

Как да си кръщаваме променливите ?

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

ПРАВИЛО

При именоване на класове, задължително използвайте camelCase конвенция.

НАСОКИ

Основните характеристики на доброто име на променлива е:

  • отразява функционалната идея на информацията, която съхранява
  • дава информация за типът, към който принадлежи

При писане на променливи суфиксите са вашия най добър приятел:

  • ако променливата съдържа цели числа, бройка може да ползвате суфикс Count;
  • ако променливата съдържа, сума можете да ползвате суфикса Amount;
  • ако променливата съдържа низ, който може да бъде назован със събирателен термин - ползвайте го като суфикс. Например заглавие Title или съобщение Message;
  • ако променливата съдържа масив, можете да използвате като суфикс генералното понятие Collection , за да покажете че говорим за набор от данни а не единична такава.

Никога ама никога не пишете имена на променливи:

  • на шлюкавица / език различен от англииски.
  • ползвайки съкращения, които не са общоизвестни в индустрията или езика.
  • с помоща на генерални / общи понятия, които нямат никакъв смисъл като test / variable
  • съдържащи една буква (това правило има мега специфични изключения)

Константи и магически символи ?

Константите са механизъм за справяне с така наречените магически символи. Магически символ наричаме всяка употреба на число или низ, в рамките на кода, чието значение не е очевидно.

Например да разгледаме следния израз.

boolean isCustomerVip = purchessAmount >= 5000;

Числовия литерал 5000 е магическото число в този контекст, добре е да се избягва употребата на подобни литерали, защото тяхното значение не е очевидно. Доста по добър подход е да дефинираме константа, съдържаща специфичната стойност. По този начин ще ползваме наименованието на константата вместо нейната стойност.

final int PURCHASE_AMOUNT_LIMIT = 5000;
boolean isCustomerVip = purchessAmount >= PURCHASE_AMOUNT_LIMIT;

ПРАВИЛО

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