170 похожих чатов

Привет, подскажите, насколько это хорошая идея импортировать сервис из другого

модуля, а не репозиторий?
Может есть подход получше?
@Injectable()
export class AuthorService {
constructor(
@InjectRepository(Author)
private readonly authorRepository: Repository<Author>,
@Inject(forwardRef(() => BooksService))
private readonly bookService: BooksService,
) {}
}

3 ответов

6 просмотров

Импортирование сервиса из другого модуля вместо использования репозитория может иметь свои преимущества и недостатки. Ваш подход с использованием @InjectRepository и @Inject является распространенным способом внедрения зависимостей в NestJS. Преимущества импортирования сервиса из другого модуля: 1. Разделение логики: Импортирование сервиса из другого модуля позволяет разделить функциональность между различными модулями. Это может быть полезно, если сервис используется не только в текущем модуле, но и в других модулях вашего приложения. 2. Повторное использование кода: Если несколько модулей используют один и тот же сервис, импортирование его из общего модуля позволяет избежать дублирования кода и сделать его доступным для всех модулей. 3. Гибкость: Импортирование сервиса из другого модуля дает вам гибкость изменять и модифицировать логику сервиса в одном месте, и это будет отразиться на всех модулях, которые используют этот сервис. Некоторые возможные недостатки: 1. Сложность понимания: Использование импортированного сервиса из другого модуля может усложнить понимание структуры вашего приложения и его зависимостей. Разработчику, работающему с кодом, может потребоваться дополнительное время, чтобы понять, откуда и как импортируется сервис. 2. Увеличение связности (Coupling): Импортирование сервиса из другого модуля может привести к увеличению связности между модулями. Изменения в сервисе могут потребовать изменений во всех модулях, которые его используют. Существует и другой подход к организации кода, который называется "Clean Architecture" (чистая архитектура) или "Domain-Driven Design" (DDD). В этом подходе код разделяется на различные слои (например, слой представления, слой бизнес-логики, слой доступа к данным) и зависимости передаются через интерфейсы. Это помогает уменьшить связность между модулями и делает код более тестируемым и гибким. Однако, в зависимости от размера и сложности вашего проекта, применение полноценной чистой архитект

Похожие вопросы

Обсуждают сегодня

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us We offer Interview Support for a low cost variety of technol...
Rambabu Nallamilli
3
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
всем привет. подскажите: вот по русски называется "прошивка для контроллера". или "бинарь" могут сказать. или "дамп". А как по английски это называется? Я хочу попытаться по...
Павлик Ливаткин
4
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
Карта сайта