---
title: Лучшие практики
---

Этот документ описывает лучшие практики, которым следует следовать при работе с бэкендом.

## Следуйте модульному подходу

Бэкенд следует модульному подходу, который является основным принципом при работе с NestJS. Убедитесь, что вы разбиваете код на повторно используемые модули, чтобы поддерживать чистую и хорошо организованную кодовую базу.
Каждый модуль должен инкапсулировать конкретную функциональность и иметь чётко определённую область ответственности. This modular approach enables clear separation of concerns and removes unnecessary complexities.

## Expose services to use in modules

Всегда создавайте сервисы с одной чёткой областью ответственности, что повышает читаемость и облегчает сопровождение кода. Называйте сервисы понятно и единообразно.

Также следует экспортировать сервисы, которые вы хотите использовать в других модулях. Экспорт сервисов в другие модули возможен благодаря мощной системе внедрения зависимостей NestJS и способствует слабой связности между компонентами.

## Избегайте использования типа `any`

Когда вы объявляете переменную с типом `any`, система проверки типов TypeScript перестаёт выполнять проверку, что позволяет присваивать переменной значения любого типа. TypeScript использует вывод типов для определения типа переменной на основе значения. Если объявить переменную с типом `any`, TypeScript больше не сможет вывести её тип. Это затрудняет выявление ошибок, связанных с типами, во время разработки, приводит к ошибкам времени выполнения и делает код менее поддерживаемым, менее надёжным и труднее понятным для других разработчиков.

Поэтому всё должно иметь тип. Поэтому, если вы создаёте новый объект с именем и фамилией, следует создать интерфейс или тип с полями имя и фамилия, определяющий структуру объекта, с которым вы работаете.
