Skip to content

Latest commit

 

History

History
51 lines (29 loc) · 3.86 KB

File metadata and controls

51 lines (29 loc) · 3.86 KB

Требования к оформлению проекта

Разбиение на модули

Функциональность должна быть разбита на модули, объединенные по смыслу. Каждый модуль решает одну задачу и может быть легко переиспользован.

Именование функций и переменных

Названия функций должны четко отражать выполняемое действие, а переменные — содержимое.

  • Используйте глаголы для функций и существительные для переменных.
  • Не используйте аббревиатуры, за исключением общепринятых (например, id, API, URL).

Принцип DRY (Don't Repeat Yourself)

Не дублируйте код. Если один и тот же блок используется несколько раз, выделите его в отдельную функцию или модуль.

Уровень вложенности

Избегайте глубокой вложенности в условных операторах и операторах выбора: не более 2 уровней.

Обработка ошибок

Обрабатывайте ошибки таким образом, чтобы не только логировать их, но и возвращать пользователю понятные и информативные сообщения.

Типизация

Всегда задавайте типы для параметров и возвращаемых значений функций. Не используйте any, если этого можно избежать. Предпочитайте строгую типизацию и продуманное использование unknown. Используйте интерфейсы или типы для сложных объектов и структур данных.

Консистентность в коде

Следите за единообразием отступов, пробелов и других элементов форматирования. Используйте линтер ESLint и форматтер Prettier для поддержания консистентного стиля кода.

REST API

Соблюдайте конвенции REST при работе с эндпоинтами. В контроллерах Nest.js избегайте логики обработки данных; она должна находиться в сервисах.

Форматирование и стилистика

Для перечислений и булевых значений используйте понятные и полные слова (например, isActive вместо act). Логические значения не должны отрицаться более одного раза в выражении (!isActive вместо !!isInactive).

Использование DTO (Data Transfer Object)

Для передачи данных между слоями используйте DTO. Описание DTO позволяет лучше структурировать входные данные и следить за их корректностью.

Работа с базами данных

Используйте типы данных, подходящие для хранения нужной информации (например, timestamp для временных меток). Всегда валидируйте и фильтруйте данные, поступающие в базу данных, особенно для полей, которые могут вводиться пользователями.