Comments 15
Денчик, привет! Статья - пулемет ?
Для решения проблемы с импортами между модулями/либами используется абстрактный класс в качестве токена
Недавно наткнулся на такой инструмент https://github.com/pahen/madge, выдает отчет о циклических ссылках.
как использование этого фреймворка в реальности влияет на разработку
влияет в худшую сторону, если не до конца разобраться как он работает. А так фреймворк топ для бекенда ноды сейчас.
Конечно, в крайнем случае можно динамически сконструировать класс и повесить на него нужные декораторы с помощью фабрик. Но в рамках концепции Nest это будет максимально спорное решение.
Именно это решение показывал автор фреймворка на конференции HolyJS. По его мнению это решение нисколько не спорное, а весьма органичное в рамках концепции Nest. Я, кстати, тоже использовал его – работает отлично.
Выглядит как Angular
После 5 лет использования голого експресса с самописными обертками в стартапе после +100500 девелоперов которые приходили и уходили (вы даже представить себе не можете как сервисы выглядят изнустри), уже 2 года с NestJS, и результаты только положительные.
Правда мы и NestJS оборачиваем в собственный фреймворк, который позволяет генерировать рабочие темплейты со структурой onion/clean architecture + готовыми инжекторами ко всем тулзам/базам мы используем, тем самым более менее ограничивая и направляя девелоперов писать в определенном стиле, который можно легко тестировать, понимать и рефакторить, сосредоточившись на написании бизнес логики.
NestJS это Java Spring/ASP.NET MVC на минималках, поэтому многим девелоперам сравнительно легко в него зайти.
З.Ы.
Ошибки депенденси действительно все еще вызывают дискомфорт, но после полного понимания как оно работает становится легче.
А как дела обстоят с поддержкой от разработчиков NestJS? Приходилось ли когда-нибудь обращаться, были ли issue на github? Как там жалуют пользователей из России?
Есть достойная альтернатива Nest - https://adonisjs.com/
Когда-нибудь это включат в документацию
export interface IService { }
export const IService = Symbol.for('IService')
�
NestJS для разрастающейся разработки: зачем так сложно и почему всё-таки да