Size: a a a

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

2021 May 23

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
var - function-scope
const/let - block {} scope
Используйте const в 95% случаев, потом let, если надо менять переменную, и var, если хотите попасть в ад
источник

Dm

Dungeon master in Angular - русскоговорящее сообщество
а ещо лучше через OpenGL рисовать, а не эти ваши цсс
источник

AI

Anton Iliyn in Angular - русскоговорящее сообщество
понял, спасибо за объяснение
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
очень интересно , но ничево не понятно)
источник

Dm

Dungeon master in Angular - русскоговорящее сообщество
шутка про рисование графики в пк по векторам вручную через вызов методов из c/c++ библиотек
источник

В

Влад in Angular - русскоговорящее сообщество
а за что в аду горят var? чем плох скоуп на всю функцию?
источник

CF

Constantine Fedoruk in Angular - русскоговорящее сообщество
Спасибо, забыл написать)
Но как решить ту же задачу меньшим количеством строк, вы не видите? Так как есть, норм?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Потому что это не cool, крутые devs используют new синтаксис
А если серьезно, просто забудьте про var, он не нужен уже. Если умеете им пользоваться - пишите, но блочная видимость const/let просто-напросто понятнее. Любой шарпист или джавист разберется с первой секунды, а про var им гуглить придется
источник

В

Влад in Angular - русскоговорящее сообщество
Спасибо за разъяснения. А можете еще пояснить как тайпскрипт работает с памятью? Нужно ли мне уничтожать объявленные переменные?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
ts не работает с памятью никак - он компилится в js. Переменные уничтожать не надо, а вот обнуление полей в классах видел неоднократно
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
К несчастью, красивый код на rx писать не умею, не подскажу. У меня только два правила - отписаться и не трогать, если работает
источник

В

Влад in Angular - русскоговорящее сообщество
понял, спасибо

А подскажите как лучше сделать

У меня 8 типов сущностей. Думаю создавать ли отдельные BehaviorSubject для каждого типа сущностей. Или сделать один BehaviorSubject в котором будет массив сущностей
{
   1: [array of objects],
   2: [array of objects],
   ...
   8: [array of objects],
}
Какой способ лучше? В каком случае будет BehaviorSubject будет потреблять меньше ресурсов и легче будет найти нужный объект?
источник

CF

Constantine Fedoruk in Angular - русскоговорящее сообщество
Практично)
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Вы сильное переоцениваете влияние решения на производительность
Решать будет количество подписок (в т.ч. и rx-операторов в цепочке) и количество эмитов у сабжектов.
Если бы была серьезная просадка по производительности, то сделал бы в одном сабжекте, но я не верю, что у вас тот случай
Короче, выбирайте удобный вам способ
источник

В

Влад in Angular - русскоговорящее сообщество
У меня есть категории, заголовки, комментарии, и еще 5 типов сущностей. Все они загружаются на 1 странице, которая состоит из множества компонент которые подписаны на сабджект.

Объектов всего около 10 тыс, но на 1 странице загружается по 100-200 шт. Поэтому подписок выходит много. А еще приложение фоном слушает сокет, и может обновить какой-то объект, который пришел с сервера.

В этом случае что может быстрее вызвать просадку по производительности: количество подписок, или большое количество данных в 1 сабджекте?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Количество подписок. Данные всего лишь хранятся в объектах/массивах, с ними ничего особо не происходит, просто ссылки на них бегают туда-сюда, а они копеечные
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
А вообще есть вкладка performance в devTools, там можете глянуть, что и сколько по времени выполняется
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
И еще, если данные организованы откровенно всрато, то есть лишние map, for, лишние ивенты в цепочках, то хранение в одном сабжекте может привести к низкой производительности
https://www.learnrxjs.io/learn-rxjs/operators/filtering/distinctuntilchanged - думаю, он вам пригодится
источник

В

Влад in Angular - русскоговорящее сообщество
У меня с сервера приходит массив объектов. Я сортирую их по типу и при выводе на экран я ищу в цикле те объекты, у которых нужный id или parent_id, это достаточно всрато? Как можно улучшить

Спасибо за ссылку, пригодится
источник

S

Stepan in Angular - русскоговорящее сообщество
Реализовываю сокет сервис с прослойкой. В прослойке имеется поток в который эмитятся события подключения/отключения. Но почему-то при текущей реализации подписка срабатывает только один раз. Что я делаю не так?)

https://stackblitz.com/edit/angular-ivy-bnsrdd?file=src%2Fservice%2Fadapter.service.ts
источник