Size: a a a

Programming Offtop

2020 October 07

AM

Andrew Mikhaylov in Programming Offtop
Ну и средства отладки вроде машины времени на основании этого делаются.
источник

ML

Mikhail Levchenko in Programming Offtop
Mikhail Levchenko
такой шанс есть. бывает, что нужно выполнить логику, например, показав  пользователю будущее состояние объекта, а старое сохранить на стеке
или, например, посмотреть на дифф, чтобы отобразить некоторое сообщение (этот дифф не обязательно относится к бизнес-логике обрабатываемого объекта)
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
такой шанс есть. бывает, что нужно выполнить логику, например, показав  пользователю будущее состояние объекта, а старое сохранить на стеке
Ага, вот тут уже интересно. Это разумная штука.
источник

AN

Alexander Nozik in Programming Offtop
Но очень узко-специфичная для UI.
источник

ML

Mikhail Levchenko in Programming Offtop
ну и наконец, когда работаешь над проектом больше чем 1, ты не можешь рассчитывать на 100% взаимопонимание и если в глубине вызовов изменят что-то, что не меняться не должно было, будет грустненько
источник

ML

Mikhail Levchenko in Programming Offtop
поэтому я предпочитаю работать в immutable-by-default среде, где меньше ментальная нагрузка
источник

ML

Mikhail Levchenko in Programming Offtop
тебе не нужно заглядывать вперёд-назад во времени и отслеживать, где могло что-то поменяться
источник

(

( in Programming Offtop
Mikhail Levchenko
хорошо, есть идеи как сделать копию глубокого data class без того чтобы нафигачить кучу методов copyWithX? (я уже потихоньку пишу плагин для компилятора чтобы эту тему генерировать, но вдруг уже готовенькое)
эрроу-ленс же
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Но очень узко-специфичная для UI.
В чаеподобных архитектурах конкретно о UI на деле не так уж и много. Это хорошо ложится на любую систему из компонентов с внутренним состоянием.
источник

(

( in Programming Offtop
алсо, опять вы без меня про линзы спорите
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
хорошо, есть идеи как сделать копию глубокого data class без того чтобы нафигачить кучу методов copyWithX? (я уже потихоньку пишу плагин для компилятора чтобы эту тему генерировать, но вдруг уже готовенькое)
Есть на самом деле. Это уже реализовано в том же plotly. Делается дерево значений и унутре идет работа с ним как с деревом, а снаружи сделаны статически-типизированные аксессоры. Там и реконсайл делать можно.  Другое дело, что на внутреннем уровне есть ограничение по типам.
источник

ML

Mikhail Levchenko in Programming Offtop
(
эрроу-ленс же
неть, спосебо listOf().k() оставь себе
источник

(

( in Programming Offtop
Mikhail Levchenko
неть, спосебо listOf().k() оставь себе
они там вроде и для обычных листов умеют генерировать
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
В чаеподобных архитектурах конкретно о UI на деле не так уж и много. Это хорошо ложится на любую систему из компонентов с внутренним состоянием.
Ну хорошо, хотя мне все равно кажется, что линзы -это так себе подход. Мне больше нравится мутирующая копия, как я писал выше примерно. Но там есть ограничения на операции.
источник

ML

Mikhail Levchenko in Programming Offtop
Alexander Nozik
Есть на самом деле. Это уже реализовано в том же plotly. Делается дерево значений и унутре идет работа с ним как с деревом, а снаружи сделаны статически-типизированные аксессоры. Там и реконсайл делать можно.  Другое дело, что на внутреннем уровне есть ограничение по типам.
под капотом динамика, обмазанная сверху статикой?
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
под капотом динамика, обмазанная сверху статикой?
да
источник

AN

Alexander Nozik in Programming Offtop
Она кстати будет дешевле, чем линзы.
источник

ML

Mikhail Levchenko in Programming Offtop
ну для этого нужная специфичная предметная область, не?
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
ну для этого нужная специфичная предметная область, не?
Ну в принципе, нет.  Ограничение только на типы конечных примитивов в дереве. В конечном итоге все состоит из примитивов. Но да, туда нельзя просто так затащить объекты, которые не разлагаются по этим примитивам (вернее можно, но в них внутрь уже нельзя будет залезать).
источник

ML

Mikhail Levchenko in Programming Offtop
Alexander Nozik
Ну в принципе, нет.  Ограничение только на типы конечных примитивов в дереве. В конечном итоге все состоит из примитивов. Но да, туда нельзя просто так затащить объекты, которые не разлагаются по этим примитивам (вернее можно, но в них внутрь уже нельзя будет залезать).
звучит как nosql бд
источник