Size: a a a

Angular - русскоговорящее сообщество

2019 December 10

VP

Vadim Petrov in Angular - русскоговорящее сообщество
Вертихвост キバ
Давайте вместе посмотрим, какие варианты событий у нас могут быть


Не отписываемся: предположение верное -> ничего не теряем.
Не отписываемся: предположение неверное -> получим негативный эффект.

Отписываемся: предположение верное -> ничего не теряем.
Отписываемся: предположение неверное -> ничего не теряем.


Если не отписываться, то возможна ситуация, когда мы можем забыть про какой-то нюанс или вовсе про него не знать, и получить неправильно работающее приложение (этакий на авось). Если говорить про тот же HttpClient, то в правильно спроектированном приложении мы никогда не вызовем напрямую .subscribe(), так как это будет делаться на других слоях.

Если отписываться, то мы всегда остаемся в выигрышной ситуации и получаем безопасный код, который работает по простому контракту: подписались и отписались.
Просто потом после прочтения новички в ангуляре все обмазывают отпискам не разбираясь в сути...
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Vadim Petrov
Просто потом после прочтения новички в ангуляре все обмазывают отпискам не разбираясь в сути...
а лучше, когда они вообще не отписываются?)
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Vadim Petrov
Просто потом после прочтения новички в ангуляре все обмазывают отпискам не разбираясь в сути...
вот и я об этом, люди не разбираются в сути, а посторяют бездоказательный трёп
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
факт в том, что ваш пример не является доказательством, а является самым настоящим обманом
Пример есть пример, он просто показывает код, который может быть. Не обязательно точно такой же, так как кейсов может быть огромное количество. Поэтому я не совсем понимаю, в чем заключается его обман.

На мой взгляд, кому какой писать код — это дело каждого. Моя цель была показать, что такая проблема может встречаться, и закрывать на нее глаза точно не стоит, и всегда стоит задуматься: безопасен ли код, который я сейчас написал? будет ли он правильно работать? соблюдает ли он все контракты?
источник

VP

Vadim Petrov in Angular - русскоговорящее сообщество
Денис Макаров
а лучше, когда они вообще не отписываются?)
Лучше когда они знают когда это надо делать
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
отписываться надо потому что может произойти ситуация, что запрос ещё не завершен, а мы уже перешли на другой компонент, на предыдущем компоненте функия отработает лишний раз. Только поэтому, а не потому что будет какая-то страшная утечка памяти
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Vadim Petrov
Лучше когда они знают когда это надо делать
ну во первых, от отписок еще ни одной лишней утечки не произошло, а вот без отписок - думаю много)
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
отписываться надо потому что может произойти ситуация, что запрос ещё не завершен, а мы уже перешли на другой компонент, на предыдущем компоненте функия отработает лишний раз. Только поэтому, а не потому что будет какая-то страшная утечка памяти
Так об этом и речь. Я не совсем понимаю, где вы прочитали обратное, что утечка памяти будет всегда)
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
Так об этом и речь. Я не совсем понимаю, где вы прочитали обратное, что утечка памяти будет всегда)
это не утечка памяти, утечка это когда какой-то код выполняется бесконечно
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Андрей Ч
это не утечка памяти, утечка это когда какой-то код выполняется бесконечно
или ждет какого-то события
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Андрей Ч
это не утечка памяти, утечка это когда какой-то код выполняется бесконечно
хмм, не совсем верный термин
утечка, это когда в памяти где-то осталась ссылка на объект
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
это не утечка памяти, утечка это когда какой-то код выполняется бесконечно
Утечка или не правильная работа — не так важно, и то и другое не очень
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Уточка памяти
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
Утечка или не правильная работа — не так важно, и то и другое не очень
нет, утечка это плохо, т.к. накаптивается и начинает тормозить, а если одна функция лишний раз отработает это не так страшно. И может у меня в коде в другом месте запрет есть перехода на другой компонент пока запрос не завершился
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
учитывать надо полный код, а не только маленький кусочек
источник

YS

Yuri Stepanov in Angular - русскоговорящее сообщество
Такие предъявы, как будто Вас кто-то заставляет ;)
источник

КВ

Кирилл Валиков in Angular - русскоговорящее сообщество
Yuri Stepanov
Такие предъявы, как будто Вас кто-то заставляет ;)
на собесе опрокинули просто)
источник

YS

Yuri Stepanov in Angular - русскоговорящее сообщество
Реально :)
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Андрей Ч
нет, утечка это плохо, т.к. накаптивается и начинает тормозить, а если одна функция лишний раз отработает это не так страшно. И может у меня в коде в другом месте запрет есть перехода на другой компонент пока запрос не завершился
что лучше - лишний раз написать unsubscribe, или потом в консоли видеть ошибку от неотработанной функции? что вы набросились? люди дают рекомендации по безопасному коду, а вы набросились так, как будто это в корне не верное утверждение
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Кирилл Валиков
на собесе опрокинули просто)
ага, из-за таких вот сектантов, которые путаются в понятиях что такое утечка памяти
источник