
Alex
23.06.2017
20:45:14
Где и почему?

Ywein
23.06.2017
20:45:30

Vladimir
23.06.2017
20:45:50
Почему - потому что эта плохая структура данных для чтения

Google

Vladimir
23.06.2017
20:46:53
И еще она подразумевает бесконечное хранение всех состояний

Max
23.06.2017
20:50:37

Ywein
23.06.2017
20:52:03
потому что если может то это many-to-many

Alex
23.06.2017
20:52:36

Max
23.06.2017
20:54:22

Alex
23.06.2017
20:55:40
это же бинес-логика - one-to-many и несколько сущностей - у каждого юзера может быть много папок, у каждой папки может быть много проектов, у каждого проекта может быть много тасков и у каждого таска может быть много комментариев. В одном объекте все не хранится - у объекта юзера есть массив ссылок на папки у папки массив ссылок на проекты и т.д, например
user = {name: 'вася, folders: [... {title: 'project1', tasks: [... {title: 'task1', comments: [... {text: 'comment1'}]}]} ]}
а вообще, какую проблему мы решаем этим?
Ну в смысле, если тебе надо как-то историю отслеживать, то варианты у тебя есть всякие разные, но есть самый прямой.
Если тебе просто надо как-то замоделить предметную область, то это совсем другой разговор.
Нельзя так просто топить за одно или за другое. В чём, собственнно, проблема то?

Ywein
23.06.2017
20:57:32

Дмитрий
23.06.2017
21:00:05
А алгоритмы, склонные к stack overflow можно записывать иначе

Vladimir
23.06.2017
21:02:41
В такой формулировке - подразумевает

Max
23.06.2017
21:04:55


Yumi
23.06.2017
21:19:12
C иммутабельностью сложно разработать некоторую бизнес-логику. Вот придумал такой кейс - у объекта юзера есть массив папок у каждой папки массив проектов у каждого проекта массив тасков и у каждого таска массив комментариев. И теперь юзер отредактировал какой-то комментарий - с мутабельностью все просто - берем и меняем на новое значение comment.text = newValue. А как с иммутабельностью? Нужно создать новый объект комментария, создать новый массив комментариев, перекопировать отстальные комментарии, создать новый массив тасков, перекопировать остальные таски, создать новый массив проектов, перекопировть остальные проекты и наконец создать новый массив папок, перекопировать и создать новый объект юзера. Это же медленнее в тысячи раз.
а) Ну обычно такое хранит бек, а ты уже подгружает, что тебе нужно, выходит не глубокая структура.
б) линзы

Google

Yumi
23.06.2017
21:32:15

Vladimir
23.06.2017
21:32:51
Не совсем
Хранятся все состояния, если хранится последнее

Yumi
23.06.2017
21:33:57
Типо как история?
В immutable.js подобное реализовано?

Дмитрий
23.06.2017
21:35:03
Забавно

Vladimir
23.06.2017
21:35:04
Нет

Alex
23.06.2017
21:39:47

Yumi
23.06.2017
21:40:45
Я просто подумал, что в других языках может быть иначе.

Nikolay
23.06.2017
21:40:56

Alex
23.06.2017
21:41:25

Ywein
23.06.2017
21:42:14

Nikolay
23.06.2017
21:42:38
ну ты в стейте хранишь плоское дерево, а потом выгибаешь его в нужную структуру

Alex
23.06.2017
21:43:16

Vladimir
23.06.2017
21:43:34
Нельзя
На любое состояние могут быть ссылки

Alex
23.06.2017
21:44:41
Ну и пусть себе будут.

Nikolay
23.06.2017
21:45:03
а никто не задумывается что это может хорошо кушать память? )
когда у тебя приложенькой пользуются 24/7

Google

Alex
23.06.2017
21:45:45
Как только пропадут gc их соберёт.

Nikolay
23.06.2017
21:45:49
получается же на каждое действие создается новая структура

Alex
23.06.2017
21:46:40
Ну он же тоже не вечный
Но вообще память-то конечно обычно жрется
Но, в общем, такая вот цена тайм-тревела, например

Vladimir
23.06.2017
21:49:56
Просто в жизни используются другие структуры

Pavel
23.06.2017
21:50:21

Nikolay
23.06.2017
21:52:29
почему?

Дмитрий
23.06.2017
21:52:32

Alex
23.06.2017
21:52:45

Vladimir
23.06.2017
21:53:46
Жизнь разная, но некоторые стуктуры непрактичны

Pavel
23.06.2017
21:54:17

Nikolay
23.06.2017
21:55:26
а зачем они тебе? )
что ты туда суешь обычно?

Pavel
23.06.2017
21:56:29

Max
23.06.2017
21:57:34

Alex
23.06.2017
21:57:34

Google

Nikolay
23.06.2017
21:58:45

Дмитрий
23.06.2017
21:58:48

Pavel
23.06.2017
21:58:50

Alex
23.06.2017
22:00:12

Pavel
23.06.2017
22:01:06

Nikolay
23.06.2017
22:01:18
ну в видосе чувак пытался ускорить рендер для сервера, после замены createClass на обычные классы получил прирост производительности, впринципе оно и понятно почему

Evgenii
23.06.2017
22:01:55
Mybitcoin - Блог о Криптовалюте и способах на ней заработать! @faucetclub

Max
23.06.2017
22:02:27
@sergeysova

Admin
ERROR: S client not available

Yumi
23.06.2017
22:02:45
Заклинание.

Alex
23.06.2017
22:03:39
Ну по крайней мере у нас, непередовых крестьян, Бабель все это по прежнему в старый добрый es5 собирает на фронте :)

Pavel
23.06.2017
22:05:50

Nikolay
23.06.2017
22:06:01
не ну под капотом class MyFoo {} трансформится в обычную функцию

Pavel
23.06.2017
22:06:23

Nikolay
23.06.2017
22:07:06
данные с сервака должен получать экшн, а ты в компоненте должен реагировать на пропсы и показывать лоадер или не показывать
экшн должен вызывать HOC

Pavel
23.06.2017
22:07:34

Alex
23.06.2017
22:07:50

Google

Nikolay
23.06.2017
22:08:56
ну на самом деле createClass уже deprecated

Pavel
23.06.2017
22:09:31

Alex
23.06.2017
22:12:07
ну на самом деле createClass уже deprecated
Это да. Мне просто не до конца понятна мотивация. Я использую классы не для реакта - это удобно. Но в реакте мне очень непонятно зачем оно так. Собственно большую разницу вижу ровно в одном - бинд. В первом случае он простой и понятный, во втором... ну есть способы, да. Но как-то не выглядит шагом вперёд

Nikolay
23.06.2017
22:13:20
т.е для тебя классы менее понятны чем какая то функция в которую что то надо передавать?
напоминает времена когда каждый городил свою реализацию классов как умел

Alex
23.06.2017
22:17:33

Nikolay
23.06.2017
22:18:07
как это без контекста
в них есть контекст
он наследуется просто )

Alex
23.06.2017
22:18:32
У стрелочных-то?)

Nikolay
23.06.2017
22:18:38
yep

Max
23.06.2017
22:18:41
Вторым параметром тащемта
А стоп. А задать как ?

Alex
23.06.2017
22:20:12
Ну в общем понятно, что прогресс не остановить, но мне странно :)

Max
23.06.2017
22:20:33
Контекст

Alex
23.06.2017
22:22:32
Вообще никак. Он из окружающей области видимости подъезжает

Nikolay
23.06.2017
22:22:42
это называется "lexical this"
this наследуется из лексического окружения где была определена функция

Max
23.06.2017
22:23:46
Я не про скоупы