---
title: Лучшие практики
image: /images/user-guide/tips/light-bulb.png
---

<Frame>
  <img src="/images/user-guide/tips/light-bulb.png" alt="Header" />
</Frame>

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

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

Бэкенд следует модульному подходу, который является основным принципом при работе с 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 больше не может выводить тип. Это затрудняет выявление ошибок, связанных с типами, во время разработки, что приводит к ошибкам выполнения и делает код менее поддерживаемым, менее надёжным и трудным для понимания других.

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