Architecture Decision Record

Active theme: Light

← Приклади записів рішень

Запис архітектурного рішення: snake_case чи camelCase для REST API?

Рішення: для кінцевих точок REST API використовуватиметься конвенція іменування snake_case

Статус: прийнято

Контекст

У конвенціях іменування для REST API є два популярні формати: snake_case і camelCase. У форматі snake_case кожне слово в імені відокремлюється підкресленнями, тоді як у camelCase перше слово імені пишеться малими літерами, а наступні слова починаються з великої літери. Це рішення визначить, яку конвенцію іменування слід використовувати для REST API.

Чинники рішення

  • Узгодженість з наявними конвенціями іменування в проєкті

  • Читабельність і ясність для будь-кого, хто може працювати з API

  • Відповідність галузевим найкращим практикам конвенцій іменування REST API

  • Простота впровадження та супроводу

Рішення

Для кінцевих точок REST API використовуватиметься конвенція іменування snake_case. Цей вибір зумовлений такими чинниками:

  1. Узгодженість: проєкт уже використовує конвенцію іменування snake_case для всіх кінцевих точок, і було б корисно зберегти цю конвенцію, щоб забезпечити узгодженість у всьому проєкті.

  2. Читабельність і ясність: конвенція snake_case читабельніша й легша для розуміння. Підкреслення забезпечують чіткий розподіл між словами, що полегшує розбір і розуміння значення імені.

  3. Відповідність галузевим найкращим практикам: конвенція snake_case широко використовується в галузі й вважається найкращою практикою для REST API, що робить її добрим вибором для проєкту.

  4. Простота впровадження та супроводу: дотримання наявної конвенції іменування легше впровадити й підтримувати, адже в разі вибору нової конвенції довелося б оновлювати весь наявний код і документацію.

Наслідки

Це рішення має потенційні наслідки.

  • Якщо нові учасники команди, що долучаються до проєкту, не знайомі з конвенцією іменування snake_case, це може призвести до плутанини та помилок у розробці. Проте оскільки snake_case — широко вживана конвенція, такий ризик мінімальний.

  • Якщо в проєкті використовуються інші інструменти чи фреймворки, що значною мірою ґрунтуються на конвенції camelCase, може знадобитися додаткове зусилля для перетворення між конвенціями іменування. Проте це не є суттєвою проблемою, оскільки проєкт стандартизовано на конвенції snake_case.

Загалом рішення використовувати конвенцію іменування snake_case для кінцевих точок REST API забезпечує узгоджений, читабельний та галузево стандартний підхід, при цьому його легко впровадити й підтримувати.

Подяка: цю сторінку згенерував ChatGPT, після чого її відредагували для ясності та формату.