@react_js

Страница 5078 из 5115
Сергей
25.10.2018
01:16:02
в итоге мобх накидывает больше проблем, чем решает. плюс использует декораторы и реактивность Одно не в стандарте уже очень давно, другое в разы усложняет отладку

Kelin
25.10.2018
01:17:30
Я говорю, если хочется понять, почему магия - это плохо, просто попишите пару месяцев на вью. Заебетесь

Kevin
25.10.2018
01:18:13
Я бы попробовал. Судя по всему, мне бы понравились. Только библиотек очень не хватает

Max
25.10.2018
01:19:26
а теперь отвечу на твоё сообщение. Что я называю магией и неочевидностью вот делаешь ты где-то this._data.value = 1 и в большом проекте ты можешь даже не знать, что у тебя обновилось больше одного стора. А чего разрешение циклических обновлений? сколько там раз обновляется, а потом просто останавливается обновление не завершившись и оставив данные в неконсистентном состоянии?
mobx решает проблемы связанные лишними вычислениями и неконсистнентным состоянием - если обновилось больше одного стора/компонента то значит что стор/компонент зависит в тот момент от значения которое поменялось и нужно его вызвать. Если бы он не зависел в тот момент то mobx его вызвать не стал бы. Циклических зависимостей в mobx вообще быть не может - он детектит и выдает ошибку. Может быть имелись ввиду ромбовидные зависимости с проблемами лишних вычислений то mobx также их все успешно решает. В общем я буду рад увидеть примеры кода где происходят странные на твой взгляд ситуации

Google
Сергей
25.10.2018
01:20:31
это антипаттерн, друг мой

примеров сейчас, к сожалению, не накину. но поищу по истории чатов. мобх здесь уже не первый раз ругают

а теперь про магию



https://github.com/mobxjs/mobx/blob/524bf2c8c1f949f3247cea3dcb1cfbf0316f3950/src/core/reaction.ts#L212

вот и всё

100 итераций и mobx считает что это бесконечная петля! Охуенная эвристика @bggnx вам бы поизучать как в реальности mobx работает



Kelin
25.10.2018
01:23:39
Пациенту следует назначить 2 месяца Vue внутривенно для профилактики, если наблюдаются следующие симптомы 1. Повышенная тяга к реактивности 2. Заявления, что API на строках - это не плохо 3. Отсутствие защитной реакции на следующие раздражители: темплейт-синтаксис, export default, объявление компонентов объектами 4. Отрицание, непринятие css-in-js и jsx

Max
25.10.2018
01:24:45
кек. обновилось больше одного стора -> обновили другую часть сторов в итоге, пока не прочитаешь весь исходный код проектов, ты не сможешь понять, дорого тебе обойдется обновление одного поля или нет.
но это возможно если код проекты усыпан реакциями которые менют значения других сторов а значит происходит полное непонимание что такое derivated state и что для этого нужно использовать computed где таких проблем нет (и вообще computed-ы нужны только для улучшения происводительности). К сожалению наговнокодить можно и с mobx-ом, обзерваблы в этом не виноваты)

Сергей
25.10.2018
01:24:53
дядюшка Боб за такое не похвалит) https://github.com/mobxjs/mobx/blob/master/src/core/globalstate.ts

Google
Kelin
25.10.2018
01:25:33
Земля пухом

Max
25.10.2018
01:25:57
это и есть детект циклических зависимостей

Сергей
25.10.2018
01:26:16
Kelin
25.10.2018
01:27:14
но это возможно если код проекты усыпан реакциями которые менют значения других сторов а значит происходит полное непонимание что такое derivated state и что для этого нужно использовать computed где таких проблем нет (и вообще computed-ы нужны только для улучшения происводительности). К сожалению наговнокодить можно и с mobx-ом, обзерваблы в этом не виноваты)
К сожалению, взаимодействия между фичами происходят чаще, чем этого хотелось бы. Так что, если в ход идут заявления "меняются значения других сторов - равносильно непониманию, что такое derivated state", происходит полное непонимание того, как устроены проекты на самом деле

Сергей
25.10.2018
01:27:50
Но первый пункт все же лучше вычеркнуть.
не) реактивность надо применять там где она уместна, а не тащить в каждую дыру

Max
25.10.2018
01:28:08
100 итераций и mobx считает что это бесконечная петля! Охуенная эвристика @bggnx вам бы поизучать как в реальности mobx работает
там не 100 итераций там сто раз вызовов одной и той же функций во время перерасчета computed-а, если у тебя есть идея как можно было бы проще задетектить цилические зависимости то автор mobx будет только рад

Сергей
25.10.2018
01:28:16


Сергей
25.10.2018
01:29:07


Kelin
25.10.2018
01:29:27
Inum

Сергей
25.10.2018
01:29:35


https://github.com/mobxjs/mobx/blob/master/src/core/derivation.ts#L122

короче весь код mobx испещерен каким-то говном

как и преттиер

Kelin
25.10.2018
01:30:17
пол пятого утра, в реакт чате мобикс срачик, бля, охуенно

хорошее утро у кого-то будет

Google
Andrey
25.10.2018
01:30:53
не) реактивность надо применять там где она уместна, а не тащить в каждую дыру
По части стора я придерживаюсь, что он должен быть реактивным от слова совсем.

Сергей
25.10.2018
01:32:23
почти все исходники core/ напрямую зависят от глобального состояния

Max
25.10.2018
01:32:31
давай лучше не будем тащить код с mobx, я защищаю не его исходники а его идею и механизм его работы. Мне самому не нравится как он написан. Весь тот механизм мобикса можно реализовать намного проще (https://habr.com/post/349022) лучше уже критикуйте этот код https://github.com/bgnx/xmob/blob/master/xmob/index.ts

Сергей
25.10.2018
01:32:57


Kelin
25.10.2018
01:33:03
А что-нибудь в mobx есть не сломанное?

Andrey
25.10.2018
01:33:25
я против. ибо связи стора хуй отследишь тогда. обновил одно поле и сиди охуевай
Я думаю, что эту проблему надо решать инструментами, а не генерацией бойлерплейта вместо логики.

Max
25.10.2018
01:33:49
Детектить цикл чешские зависимости в рантайме - плохая идея.
так это только для дев-режима для прода этот детект вроде отключается

Artyom
25.10.2018
01:34:08
А что-нибудь в mobx есть не сломанное?
автоматический проход по зависимостям

Kelin
25.10.2018
01:34:24
Я думаю, что эту проблему надо решать инструментами, а не генерацией бойлерплейта вместо логики.
А в чем ты видишь бойлерплейт при отсутствии реактивности? Юзать state.set(value) вместо state = value?

Сергей
25.10.2018
01:34:29


Kelin
25.10.2018
01:34:30
(псевдокод)

Max
25.10.2018
01:34:40
так его механизмы работают через жопу. если автор пишет отвратительный код, какой смысл слушать его проповеди об идеологиях?
не вижу связи. Код плохой, идеи и механизмы очень крутые и решают весьма сложные глитчи связанные с лишними вычислениями

Сергей
25.10.2018
01:34:48
а где ссылка на issue/pr а где описание, что именно пофикшено

пиздец

Andrey
25.10.2018
01:34:56
Google
Andrey
25.10.2018
01:35:14
Такое писать без реактивности смерти подобно.

Сергей
25.10.2018
01:35:14
https://github.com/mobxjs/mobx/commit/86b500d52f294378e55f03db7c2a3cfaf3ed05e4

Kelin
25.10.2018
01:35:45
Представь, что у тебя разветвленная цепочка компьютедов.
Как понять разветвленная цепочка компьютедов? Ну запили combine(storeA, storeB, (a, b) => a + b)

Andrey
25.10.2018
01:35:53
а представь что тебе не нужны computed
Как решать зависимость сторов?

Kelin
25.10.2018
01:35:53
сколько хочешь пили их

Max
25.10.2018
01:36:12
а представь что тебе не нужны computed
тогда будут лишние вычисления https://t.me/redux_ru/31984

Admin
ERROR: S client not available

Andrey
25.10.2018
01:36:33
как эффектор?
Тебе все равно надо будет руками восстанавливать цепочку. Но я примерно такое решение и имел ввиду.

Ещё надо будет как-нибудь сделать верификацию стора нормальную и будет ок все.

Но здесь уже надо с бабелем трахаться.

Andrey
25.10.2018
01:38:47
У тебя c, d, e - это компьютеды)

Andrey
25.10.2018
01:39:30
И?
Ты мне выше предложил отказаться от компьютедов и использовать combine)

Сергей
25.10.2018
01:39:31
но есть куда более реальный

Kelin
25.10.2018
01:39:54
Google
Kelin
25.10.2018
01:39:56
перечитай

Artyom
25.10.2018
01:40:00
Andrey
25.10.2018
01:40:19
Но вообще мне кажется, что надо реализовывать компьютеды как сделано в нокауте или вью.

Kelin
25.10.2018
01:40:39
Посыл автора того поста в том, чтобы не триггерить "апдейт" e в случае, если d обновился, а он возвращает a. Так вот, его здесь не будет

Сергей
25.10.2018
01:42:34
интересно, а хренли у меня при огромных сложных связях в сторе нет лишних апдейтов?

Artyom
25.10.2018
01:43:16
интересно, а хренли у меня при огромных сложных связях в сторе нет лишних апдейтов?
У тебя апдейты не частые и ты руками много чего делаешь. Вот мне бы хотелось со скролом из стора работать...

Kelin
25.10.2018
01:43:51
У меня есть лишние апдейты только в дереве компонентов. И только в списках. По причине, описанной выше. Я не могу перенести списки в эффектор, потому что работать с ними нормально пока невозможно (я верю, что возможно, но нормального решения не придумал)

Kelin
25.10.2018
01:44:24
Собственно, сегодня словил вот серьезную просадку перфоманса, когда изменение инпута в карточке со списком триггерило ререндер каждой карточки 5 раз ~_~

Max
25.10.2018
01:44:34
прочти внимательно требования задачи - сколько раз вызовется "e" при изменении "а" ? Нужно чтобы вызывался тольк один раз а не дважды. И сторы "d" и "с" должны вычисляться не всегда а только тогда когда стор "e" зависит от "d" (то есть когда выполняется условие a.length <= 5

Сергей
25.10.2018
01:45:07
У тебя апдейты не частые и ты руками много чего делаешь. Вот мне бы хотелось со скролом из стора работать...
апдейты частые, но я предпочту написать пару лишних строк на файл, нежели дебажить сложнейшие графы по многу часов. это да

Сергей
25.10.2018
01:45:36
Andrey
25.10.2018
01:45:50
Дима хочет скоро исправить работу со списками
А есть описание как оно работать будет? Или есть просто задача это сделать?

Kelin
25.10.2018
01:46:27
вот из-за этой хуйни я и не хочу юзать какие-то либы, которые имеют тонну кода, и подводные скалы
Так это не в эффекторе косяк) А в том, что данные прокидываются из компонента списка в компоненты айтемов и при любом изменении апдейтят список

Max
25.10.2018
01:46:43
Если возвращается a - один. Если возвращается d - ноль. Шах и мат
если combine работает аналогично rxjs то там не может быть одного вычисления там всегда будут дубли - https://staltz.com/rx-glitches-arent-actually-a-problem.html

Kelin
25.10.2018
01:46:44
Из-за этого реакт перерендеривал список иииииии все айтемы тоже

Страница 5078 из 5115