Size: a a a

Elm Lang сообщество разработчиков

2021 January 03

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
У центрального стора есть смысл, очень большой - это транзакционность
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Denis Krivosheev
Вон люди целые библиотеки пишут чтобы с этим бороться
дай бог им здоровья)
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Но это весьма.... большая плата за транзакционность
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
И кроме того не единственный способ
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Так же такая система делает горизонтальные апдейты очень сложным процессом
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
В элме нет ни одного способа сделать это чисто
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Один рыжий дядя предлагал решение... но честно скажу то не решение, а костыль
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Denis Krivosheev
Один рыжий дядя предлагал решение... но честно скажу то не решение, а костыль
это про что?
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Denis Krivosheev
Так же такая система делает горизонтальные апдейты очень сложным процессом
это вы про сложный глубокий стейт и необходимость линз?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Ну вот например есть у нас в приложении подсистема для записи видео сессии. Изначально подсистема проектировалась таким образом, чтобы не знать ничего о всем остальном приложении. То есть была у неё своя собственная модель, свой апдейтер и месседжи и даже свои порты и все как надо, потом эта подсистема использовалась снаружи и все были счастливы. А потом вдруг оказалось, что пользователю нужно предложить согласие на то чтобы сессия была записана, пользователь может согласиться а может и нет и в зависимости от его ответа должны произойти некоторые изменения уже в другой подсистеме, никак не связанной с записью.
То есть нам надо организовать общение между двумя независимыми подсистемами
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Это можно было бы легко смоделировать имея например интерфейсы или каналы или некие другие методы, но в элм нет ни одного нормального способа это сделать
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Рыжий дядя предложил из апдейтера возвращать например не тупл, а скажем трипл
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Потом матчиться по третьему элементу на верхнем уровне и потом слать новые апдейты в другие модули
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Denis Krivosheev
Это можно было бы легко смоделировать имея например интерфейсы или каналы или некие другие методы, но в элм нет ни одного нормального способа это сделать
это что не тот самый "старый" publish/subscribe? интерфейсы каналы, порты не подходят почему под это, это же это и есть?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Sash Osh
это что не тот самый "старый" publish/subscribe? интерфейсы каналы, порты не подходят почему под это, это же это и есть?
Вот в том то и дело что все должно быть к месту и ко времени. Это впихнуто туда где это не нужно и этого нет там где это нужно
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Но это фундаментальный недостаток именно самой парадигмы, поэтому внутри парадигмы нет адекватного решения
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
И по хорошему если ситуация возникла - парадигму надо менять
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Denis Krivosheev
Рыжий дядя предложил из апдейтера возвращать например не тупл, а скажем трипл
да ве что угодно возвращать можно, главное чтобы в worker главный апдейт выдавал, что нужно
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
правильно я понимаю, что проблема общения между "модулями" внутри такой архитектуры?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Возвращать то можно что угодно, только вот это не решает проблему, а переносит её на уровень выше. Где верхнеуровневый апдейтер мгновенно превращается в чудовище god function , который знает все и про всех
источник