Соглашения об именовании и руководства по стилю в программировании
В этой статье вы узнаете случаи, используемые для соглашений об именах при написании кода, а также получите ссылки на некоторые руководства по стилю, которые улучшат ваше соглашение об именах в зависимости от языка, с которым вы работаете.
Важно знать о различных соглашениях об именах или случаях, используемых при кодировании, по разным причинам, например, для передового опыта и надлежащего обслуживания кода, удобочитаемости, согласованности кода, инструментов и автоматизации, совместной работы и многого другого.
При написании кода используются разные случаи, чтобы указать соглашение об именах для переменных, функций, классов, файлов, папок и других объектов кода.
В зависимости от языка программирования и принятой в сообществе практики могут использоваться разные стили регистра. Ниже приведены некоторые типичные типы случаев и примеры, в которых они используются:
[
"camelCase",
"PascalCase",
"snake_case",
"kebab-case",
"SCREAMING_SNAKE_CASE"
]
1. Camel Case (также известный как нижний верблюжий регистр): при применении этого регистра имен между словами в этом стиле нет пробелов или знаков подчеркивания, в котором начальная буква каждого слова, кроме первого, делается заглавной. Он часто используется для именования переменных, функций и методов в таких языках программирования, как JavaScript, Java, Python, C# и т. д.
Пример:
Вот несколько примеров фрагментов кода, написанных в camelCase:
Объявление переменной (Java):
int numberOfStudents;
String userName;
double averageScore;
Определение метода (Python):
def calculateTotalAmount(paymentList):
totalAmount = 0
for payment in paymentList:
totalAmount += payment
return totalAmount
Вызов функции (JavaScript):
let formattedName = formatUserName(userName);
Не рассматривая только методы и имена переменных, эти примеры показывают, как использовать camelCase, где каждое слово в идентификаторе начинается с прописной буквы, кроме первой. Для повышения удобочитаемости и поддержания согласованного стиля кодирования.
2. Pascal Case, часто называемый верхним верблюжьим регистром: это вариант верблюжьего регистра, в котором начальная буква каждого слова пишется с большой буквы. В таких языках программирования, как C#, C++ и Python, он часто используется для именования классов и типов.
Примеры
Вот несколько примеров фрагментов кода, написанных на PascalCase:
Определение класса (С#):
public class BankAccount
{
private string accountNumber;
private decimal currentBalance;
public string AccountNumber
{
get { return accountNumber; }
set { accountNumber = value; }
}
public decimal CurrentBalance
{
get { return currentBalance; }
set { currentBalance = value; }
}
}
Определение метода (Java):
public void CalculateTotalAmount(List<decimal> paymentList)
{
decimal totalAmount = 0;
foreach (decimal payment in paymentList)
{
totalAmount += payment;
}
return totalAmount;
}
Определение интерфейса (TypeScript):
interface IEmployee {
empCode: number;
empName: string;
getSalary: (number) => number;
getManagerName(number): string;
}
Объявление перечисления:
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Эти примеры демонстрируют классы имен, методы, интерфейсы и перечисления с использованием PascalCase. При использовании PascalCase первая буква каждого слова, даже самого первого, становится заглавной. Он часто используется для поддержания согласованного соглашения об именах и улучшения читаемости кода на таких языках, как C#, Java, TypeScript, JavaScript, C++ и т. д.
3. Snake Case: в этом стиле часто используются строчные буквы и знаки подчеркивания (_
) между словами. Он часто используется для именования переменных и функций в таких языках, как Python и Ruby, а также для именования файлов и папок в таких средах, как Reactjs.
Примеры
Вот несколько примеров фрагментов кода, написанных в snake_case:
Объявление переменной (Python):
number_of_students = 30
user_name = "johnsmith"
average_score = 85.5
Определение функции (Ruby):
def calculate_total_amount(payment_list)
total_amount = 0
payment_list.each do |payment|
total_amount += payment
end
total_amount
end
Имена столбцов базы данных (SQL):
CREATE TABLE users (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email_address VARCHAR(255),
date_of_birth DATE
);
В этих примерах переменные, функции, константы, столбцы базы данных и файлы конфигурации называются с использованием змеиного регистра. Snake_case разделяет слова символами подчеркивания (_
) и строчными буквами. Он часто используется для поддержания согласованного соглашения об именах и улучшения читаемости кода на таких языках, как Python, Ruby и SQL.
4. Kebab Case (также пишется тире, спинной регистр): Между словами в этом стиле используются дефисы (-
) и строчные буквы. Он часто используется в атрибутах HTML, именах файлов и URL-адресах. Однако именование переменных или функций с его использованием не так распространено в программировании.
Примеры
Вот несколько примеров фрагментов кода, написанных в kebab-case:
HTML-классы (HTML):
<div class="container-fluid"></div>
Класс CSS (CSS):
.header-title {
font-size: 20px;
color: #333;
}
Имя пакета (Java):
com.example.my-project
Аргументы командной строки ((Shell script):
./script.sh --verbose-mode
В этих примерах используется соглашение об именах в kebab-case для параметров командной строки, URL-адресов, классов CSS, элементов HTML и классов CSS. Строчные буквы и дефис (-
) используются в регистре kebab-case для разделения слов. Он часто используется в таких языках, как HTML, CSS, JavaScript и других, которые позволяют использовать дефисы в качестве разделителей слов. Для многих сценариев использования kebab-case улучшает читаемость и гарантирует согласованность стандартов именования.
5. Screaming Snake Case: в этом шрифте используются прописные буквы и символы подчеркивания (_
) между словами. Его также называют змеиным регистром в верхнем регистре или screaming case (кричащим случаем). Обычно он используется для обозначения констант или глобальных переменных.
Примеры
Вот несколько примеров фрагментов кода, написанных в SCREAMING_SNAKE_CASE:
Объявление константы (Python):
MAX_ATTEMPTS = 5
PI_VALUE = 3.14159
ERROR_MESSAGE = "An error occurred."
Объявление константы (JavaScript):
const MAX_ATTEMPTS = 5;
const PI_VALUE = 3.14159;
const ERROR_MESSAGE = "An error occurred.";
Глобальные переменные (С):
#define BUFFER_SIZE 1024
const int MAX_ITEMS = 10;
Переменные конфигурации (Shell script):
DATABASE_HOST="localhost"
DATABASE_PORT=5432
USERNAME="admin"
PASSWORD="password123"
Директивы препроцессора (C++):
#define LOG_ENABLED
#define VERSION "1.0.0"
Для именования констант, значений перечисления, глобальных переменных, переменных конфигурации и директив препроцессора в этих примерах используется SCREAMING_SNAKE_CASE. Буквы верхнего регистра и символы подчеркивания (_
) используются в SCREAMING_SNAKE_CASE для разделения слов. Он часто используется для представления констант и глобальных значений, которые не следует изменять в таких языках, как Python, C++ и сценариях оболочки. SCREAMING_SNAKE_CASE часто используется для повышения удобочитаемости кода и обеспечения согласованности, а также подчеркивает, что определенные значения должны рассматриваться как неизменяемые.
РУКОВОДСТВО ПО СТИЛЮ ДЛЯ НЕКОТОРЫХ ЯЗЫКОВ, ПОМОГАЮЩЕЕ УЛУЧШЕНИЮ КОНВЕНЦИИ НАЗВАНИЯ И НАИЛУЧШЕЙ ПРАКТИКЕ
Эти руководства по стилю часто определяют соглашения по кодированию, стандарты форматирования и рекомендации по написанию чистого и поддерживаемого кода. Вот несколько примеров:
HTML:
- Руководство по стилю Google HTML/CSS – https://google.github.io/styleguide/htmlcssguide.html
- Руководство по стилю HTML для Mozilla Developer Network (MDN) — https://developer.mozilla.org/en-US/docs/MDN/Guidelines/Code_guidelines/HTML
- Руководство по веб-коду: HTML - https://webcodeguidelines.com/HTML/
CSS:
- Руководство по стилю Airbnb CSS/Sass — https://github.com/airbnb/css
- Руководство по стилю Google HTML/CSS – https://google.github.io/styleguide/htmlcssguide.html
- Руководство по стилю CSS для Mozilla Developer Network (MDN) —
https://developer.mozilla.org/en-US/docs/MDN/Guidelines/Code_guidelines/CSS
Python:
- PEP 8: Руководство по стилю для кода Python — https://www.python.org/dev/peps/pep-0008/
- Руководство по стилю Google Python — https://google.github.io/styleguide/pyguide.html
JavaScript:
- Руководство по стилю JavaScript для Airbnb — https://github.com/airbnb/javascript
- Руководство по стилю Google JavaScript – https://google.github.io/styleguide/jsguide.html
Java:
- Соглашения Oracle Code для языка программирования Java — https://www.oracle.com/java/technologies/javase/codeconventions-introduction.html
- Руководство по стилю Google Java – https://google.github.io/styleguide/javaguide.html
C++:
- Руководство по стилю Google C++ - https://google.github.io/styleguide/cppguide.html
- Стандарты кодирования LLVM — https://llvm.org/docs/CodingStandards.html
C#:
- Соглашения о кодировании Microsoft C# — https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
- Стандарты кодирования C# и соглашения об именах — https://www.dofactory.com/reference/csharp-coding-standards
Ruby:
- Руководство по стилю Ruby — https://rubystyle.guide/
- Руководство по стилю Ruby на GitHub — https://github.com/github/rubocop-github/blob/master/STYLEGUIDE.md
PHP:
- PHP-FIG PSR-12: Расширенное руководство по стилю кодирования — https://www.php-fig.org/psr/psr-12/
- Руководство по стилю кодирования Laravel — https://laravel.com/docs/8.x/contributions#coding-style-guide
Swift:
- Язык программирования Swift — Руководство по разработке API — https://swift.org/documentation/api-design-guidelines/
- Raywenderlich.com Руководство по стилю Swift — https://github.com/raywenderlich/swift-style-guide
Эти руководства по стилю содержат рекомендации по структурированию и форматированию кода, а также рекомендации по соглашениям об именах, отступам, комментариям и т. д.
Заключение
Конкретные стандарты именования могут различаться в зависимости от языка программирования и стиля кодирования, используемого данной командой разработчиков; важно помнить, что это всего лишь условности и предложения.
Также обратите внимание, что руководства по стилю кодирования могут быть субъективными и различаться в зависимости от организации, команды или индивидуальных предпочтений. Всегда полезно следовать соглашениям, используемым в вашем конкретном проекте, или сверяться с любыми рекомендациями, предоставленными создателями языка или крупными организациями в соответствующих сообществах.