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, затем отредактирована для ясности и форматирования.