Как Angular ломает любые правила для нейронок

Ни для кого из ангулярщиков не секрет, что с версии 15, в Angular появилась такая штука как отписка при разрушении с помощью DestroyRef и takeUntilDestroyed. Так вот, как бы в проекте не было прибито в потоках для отписки при разрушении компонента/директивы использовать takeUntilDestroyed + DestroyRef везде, где есть обзерваблы, кроме конструктора(в эффектах нужно в передавать DestroyRef в аргументы takeUntilDestroyed, иначе ошибка будет, потому что в эффекте ангуляру неоткуда взять DestroyRef).

Но часто при генерации текста нейронкой, я замечаю что нейронка инжектирует DestroyRef и сама вызывает ondestroy у DestroyRef, хотя можно проще. То есть вместо myObs.pipe(takeUntilDestroyed(DestroyRef)).subscribe({ complete: () => someFunction() })@)

myObs.subscribe() DestroyRef.destroy(() => { someFunction() })

И кстати, это может происходить даже когда по проекту очень часто встречаются примеры правильного использования DestroyRef для отписок. Это происходит, потому что нейроагент просто не состоянии полноценно разобрать документацию конкретной фичи конкретноазятого фреймворка или какой-то библиотеки. Если вы думаете, что такое происходит только со стримами RxJS, то я вас разочарую и это встречается и с UI компонентами, и с сигналами.

Посмотрите внимательно по проекту, вероятность того что вы увидите куски текста примерно такого содержания: toSignal( combineLatest([ toObservable(signal(), { injector: inject(Injector) }), toObservable(signal(), { injector: inject(Injector) }), ]) );

И оно как бы работает, но непонятно как долго ещё проработает.

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

Так что думайте, господа.

И ещё, если вы думаете что в реакте такое не случается, то в реакте это встречается чаще. Хотя, в реакте это и до нейронок было распространено. Я сейчас про мемоизацию всего на свете в реакте. Как-то участвовал я в рефакторинге приложения, написанного на реакте, когда работал на фрилансе, до этого я думал, что компонент на 5к строк, в котором хранится состояние всего приложения это страшно и сложно, так вот это реакт приложение оказалось еще сложнее. Зачем-то мемоизировали мемоизорованнве компоненты и внутри еще мемоизировали все что только можно, а потом удивлялись что все лагает и Math.random завис на одном числе.

Для справки. Отклик при клике и нажатии на кнопку на клавиатуре происходил через 5 секунд после того как событие зафайрилось. Это 2023-2024 год был, тогда нейронки так как сейчас не были распространены так обширно, а сейчас это возможно ещё более распространено, чем тогда, т.к нейронки имеют свойство галлюцинацинировать, а тогда все списали на то что это джун писал.