Денис Макаров @limitofzero
Software engineer
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Backend Developer, Frontend Developer
Senior
От 400 000 ₽
JavaScript
Angular
TypeScript
HTML
CSS
Software engineer
Отличная статья. Я бы еще докинул Self декоратор при инжекте destroy$ сервиса, чтобы он случайно не стянулся с родительского компонента в случае, если разработчик забыл указать сервис в провайдерах компонента.
А по поводу бездумности — как много новичков вы знаете, которые начинают приступать к проекту только после чтения всей документации и просмотра ее исходников? Лично я ни одного такого человека не встречал. Доки обычно смотрятся вскользь, а возвращаются к ним в моменты, когда что-то идет не так, или спустя время, когда менеджер не стоит над душой с новым багом или фичей.
Ну и конечно же второе: сегодня у них одна реализация, а завтра они ее меняют. Какой код более устойчив к изменениям реализации того или иного Observable?
Ну и конечно же третий довод: От отписки еще ни одной утечки/нежелательных последствий в коде не было, а вот от их избегания…
И чисто от себя: я всегда делаю отписку, будь то EventListener, паттерн Observable или его реализация ввиде Rxjs. Я даже в сервисах всегда ставлю отписку, потому что сегодня он у меня синглтон, а завтра я начну провайдить его в компоненты и он уже не синглтон.
Но за идею спасибо! Думаю это можно будет показать в отдельной статье.
Но зацикливание можно получить, если подписаться на источник, и изменять его значение в ответ на изменение. Например, у вас есть некий буфер сообщений, который представляет собой поток. Вы подписываетесь на него. И в случае, когда вам придет новое сообщение, пытаетесь запушить новое. С обычным Observable это сложно провернуть, но вот используя Subject вполне.
В следующих статьях я буду использовать примеры на rxjs. Поэтому и добавил его в название.
С остальным согласен. Думаю, что сделаю на этом акцент в будущем.
Извиняюсь, промахнулся с комментарием. Ниже дал ответ.