Created by Github action --------- Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: github-actions <github-actions@twenty.com>
28 lines
3.2 KiB
Plaintext
28 lines
3.2 KiB
Plaintext
---
|
|
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 больше не может выводить тип. Это затрудняет выявление ошибок, связанных с типами, во время разработки, что приводит к ошибкам выполнения и делает код менее поддерживаемым, менее надёжным и трудным для понимания других.
|
|
|
|
Поэтому всё должно иметь тип. Если вы создаёте новый объект с именем и фамилией, вы должны создать интерфейс или тип, который содержит имя и фамилию, что определяет форму объекта, с которым вы работаете.
|