Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 February 10

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
Буду рад услышать про конкретное проблемное место

Может бы поделился своим методом решения
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Fedir Smilianets
Буду рад услышать про конкретное проблемное место

Может бы поделился своим методом решения
Проблемным местом была сложность и объём унаследованного кода
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
David
Проблемным местом была сложность и объём унаследованного кода
Ну я бы не сказал что это проблема конкретно ангуляра и rxjs

В таких действительно легаси местах как правило проще и эффективнее всего локализовать проблемное место посчитав циклы change detection, локально там его отрубить и звать самому когда точно надо
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Fedir Smilianets
Ну я бы не сказал что это проблема конкретно ангуляра и rxjs

В таких действительно легаси местах как правило проще и эффективнее всего локализовать проблемное место посчитав циклы change detection, локально там его отрубить и звать самому когда точно надо
Rxjs переусложнен  содержит избыточные концепции и не даёт профита такое у меня сложилось впечатление имхо
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
Fedir Smilianets
Ну я бы не сказал что это проблема конкретно ангуляра и rxjs

В таких действительно легаси местах как правило проще и эффективнее всего локализовать проблемное место посчитав циклы change detection, локально там его отрубить и звать самому когда точно надо
Был один случай где насчитал как минимум 4 секунды лоад-тайма потраченного одним из элементов change detection и таким образом срезал их в около 30мс
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Fedir Smilianets
Был один случай где насчитал как минимум 4 секунды лоад-тайма потраченного одним из элементов change detection и таким образом срезал их в около 30мс
Перформанс конечно не связан с rxjs. Rх шел в нагрузку с ангулар,
концепция промисов проста и линейна в ней проще разобраться в Rx миллион операторов которые ещё надо найти/запомнить в целом код усложняется и обилие магических методов тоже доставляет
источник

V

VovaS in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Тут не промисы отменять нужно, а делать совершенно другую абстракцию асинхронности. Нужно делать очередь, вы же 10000 сразу не гетаете одной пачкой, можно выделить например 4 канала обслуживания загрузок, и очередь ожидания на вход. Как только один канал освободился, берем из очереди следующую. Тогда отменять вообще просто.
Я согласен что подход неправильный, но если надо как сказано ранее, то возможно?
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
VovaS
Я согласен что подход неправильный, но если надо как сказано ранее, то возможно?
Нет промис нельзя отменить. Разве что свою реализацию промисов добавить метод cancel  😆
источник

V

VovaS in NodeUA - JavaScript and Node.js in Ukraine
David
Нет промис нельзя отменить. Разве что свою реализацию промисов добавить метод cancel  😆
Идет вопрос про отмену Promise.all процесса. Я смотрю в сторону cancebleToken.
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
David
Перформанс конечно не связан с rxjs. Rх шел в нагрузку с ангулар,
концепция промисов проста и линейна в ней проще разобраться в Rx миллион операторов которые ещё надо найти/запомнить в целом код усложняется и обилие магических методов тоже доставляет
В рхжс много операторов, да

Но их правильное применение сводит множество проблем к нескольким строкам rxjs кода, без преувеличения

Чем как раз упрощает код

Согласен, порог входа действительно высокий, но буст того стоит
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
async/await поток исполнения линеен к примеру в отличие от нагромождения замыканий в случае rxjs часто
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
Самый жирный rxjs в моей жизни юзал 5 операторов, редко нужно больше

Да и для базисного понимания и юза rxjs достаточно знать около 10 операторов
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
Я короче знаю чем займусь в свободное время, надо попробовать в статейку с примерами для облегчения вкатывания в rxjs (и демонстрации пользы от него вне говеных примеров из доки)


Рхжс дока лютый треш, да. Без поллитры там не разберёшься
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Fedir Smilianets
Самый жирный rxjs в моей жизни юзал 5 операторов, редко нужно больше

Да и для базисного понимания и юза rxjs достаточно знать около 10 операторов
Но это код написанный тобой а не лапша из замыканий с беспощадным неймингом после команды индусов
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Короче  использовать rxjs может быть чревато я к тому
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
David
Но это код написанный тобой а не лапша из замыканий с беспощадным неймингом после команды индусов
Такое тоже видел

Всё ещё легче чем каша в пару-тройку сотен строк (в лучшем случае) на промисах и генераторах (такое тоже видел, после русаков)

Были моменты когда 3 строчки на рхжс убивали пару сотен строк костылей
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
В довершение перефразирую древнюю пословицу

Любая достаточно большая программа на js содержит в себе медленную, глючную и плохо поддерживаемую реализацию половины rxjs
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
@ffluffyhedgehog нельзя сводить все к одному способу работы с асинхронностью, где-то лучше подходят колбеки, где-то промисы и async/await, где-то обсерверы и rx, а где-то асинхронные итераторы и герераторы. Для каждого случая и по синтаксису и по производительности подходит что-то свое.
источник

FS

Fedir Smilianets in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
@ffluffyhedgehog нельзя сводить все к одному способу работы с асинхронностью, где-то лучше подходят колбеки, где-то промисы и async/await, где-то обсерверы и rx, а где-то асинхронные итераторы и герераторы. Для каждого случая и по синтаксису и по производительности подходит что-то свое.
Согласен, rx не серебрянная пуля хоть и пытается ею быть

Я скорее пишу о том что rx не так сложен как кажется и более полезен чем кажется
источник
2020 February 11

AK

Alexander Kurochka in NodeUA - JavaScript and Node.js in Ukraine
Привет. Ребят, не подскажите каким образом можно получить объект файла через fs? buffer, arraybuffer, uint8array получил, но объект файла никак. Уже часов три-четыре в гугле просидел, надежды на него больше нет.
источник