# 01. Именование и читаемость
[← Оглавление](./index.md)
---
## Осмысленные имена переменных, методов, классов
Избегайте сокращений (кроме общепринятых: id, url, json), однобуквенных имён и абстрактных названий. Имя должно отражать суть сущности или действия.
**ПЛОХО**
```php
function calc($d) {
$r = [];
foreach ($d as $x) {
if ($x['UF_ACTIVE']) {
$r[] = $x['UF_NAME'];
}
}
return $r;
}
```
**ХОРОШО**
```php
/**
* Возвращает имена активных клиентов.
* @param array $clients
* @return string[]
*/
function getActiveClientNames(array $clients): array {
$names = [];
foreach ($clients as $client) {
if ($client['UF_ACTIVE'] === 'Y') {
$names[] = $client['UF_FULL_NAME'];
}
}
return $names;
}
```
---
## Единый стиль именования (PSR-12 + Bitrix-соглашения)
| Сущность | Стиль | Пример |
|---|---|---|
| Классы | PascalCase | `ClientService` |
| Методы / функции | camelCase | `getActiveClients()` |
| Константы класса | UPPER_CASE | `MAX_RETRY_COUNT` |
| Свойства | camelCase | `$firstName` |
| Поля ORM Bitrix | snake_case (как в БД) | `STAGE_ID`, `UF_ACTIVE` |
Пользовательские поля `UF_*` — как есть: `UF_FULL_NAME`