# Найменування змінних

Правильне найменування змінних/методів/класів дозволяє зробити код само задокументованим і відповідно якіснішим. [Правильні найменування](https://interlink.gitbook.io/process/process/development-process/metaphor) діючи спільно з ключовими словами (keywords) мови здатні створити абстракцію нового порядку (див. Domain Driven Design). Приклад: if (user.isAuthorized()) user.grantAccess()

Метта синтетичні змінні є замінниками сенсових змінних, що використовуються при описі прикладів чи тестів, якщо важливіше показати взаємодію, а не деталі реалізації. Наприклад: foo, bar, baz, etc.

**Словник правильних найменувань**

* i, j, k – Тимчасові змінні кешу
* purge – Очищення (кешу)
* is, has – Префікси функцій, що повертають boolean (hasManager, isNumber)
* util – суфікс бібліотеки допоміжних функцій (DateUtil)
* processor, aggregator – суфікс класу для обробки даних (ReportProcessor, SalaryAggregator)
* manager, controller – суфікс класу-контролеру, який координує роботу інших класів
* dao – суфікс класу, що реалізує спів реалізацію даних (EmployeeDao)
* withdraw/topup - зняти/поповнити рахунок
* result – змінна акумулятор всередині функції, використовувана для повернення значення в return
* transmit – передати
* engine – двигун
* core, logic, util, lib, messaging, dao - для найменування пакетів

Додаткова інформація:\
\- [Как правильно называть переменные](https://www.youtube.com/watch?v=Axa5vLSA8fU\&list=PL3-sgkwaK6sWQZRKP-tpi1kpuVmfMbtMg\&index=3)\
\- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
