Size: a a a

Software Design/Architecture/Zen

2020 October 07

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Evgen
Типа знаешь что такое чистая функция и иммутабельность - ФПшник?
Знать - одно. А уметь применять - другое
источник

k

knopkod4v in Software Design/Architecture/Zen
Roman
А, так вот как. С этого и надо было начинать. А то у вас, как поглядишь, весь хаскель иммутабельный и чтобы окрыть дверь дома, нужно создать новый дом с открытой дверью
а я бы согласился с тобой, пожалуй. Ну то есть проблема в том, что VO мутируется непонятно где (а значит никто не контролирует стейт того объекта, к которому VO принадлежит и могут быть нарушены инварианты), а не в том, что VO мутабельный или нет. Если контроль родительского объекта есть (изменение VO происходит внутри объекта) - значит всё ок и не так важно объект мутабельный или нет.
источник

E

Evgen in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Знать - одно. А уметь применять - другое
Ну говорят же выше, что в ФП себе ногу не отстрелишь )
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Evgen
Типа знаешь что такое чистая функция и иммутабельность - ФПшник?
На самом деле там больше всего, но обычно люди которые с этим сталкиваются, считают что они уже все выучиили и больше ничего учить не надо
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Evgen
Ну говорят же выше, что в ФП себе ногу не отстрелишь )
Ну, это утрированно, конечно. Но в 90% случаев - правда.
Но очень зависит от ЯП тоже. Писать ФП код на ФП языке - не то же самое, что писать ФП код на мультипарадигменном языке (джс к примеру)
источник

E

Evgen in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Ну, это утрированно, конечно. Но в 90% случаев - правда.
Но очень зависит от ЯП тоже. Писать ФП код на ФП языке - не то же самое, что писать ФП код на мультипарадигменном языке (джс к примеру)
просто func(func(func(initialValue)))
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Apache DOG™
На самом деле там больше всего, но обычно люди которые с этим сталкиваются, считают что они уже все выучиили и больше ничего учить не надо
... даже не выучив теорию категорий 😂
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Evgen
просто func(func(func(initialValue)))
Неа, посмотрите как устроено хаскельное IO
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Evgen
просто func(func(func(initialValue)))
выше в чате были скрины моего имутабельного кода: https://t.me/oop_ru/149088
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Так не получается
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Evgen
просто func(func(func(initialValue)))
На чтение да.

А на запись где здесь запись в БД результата и запрос в БД на проверку уникальности с возвратом ошибки?
источник

E

Evgen in Software Design/Architecture/Zen
Наверно сразу разберется лишь тот, кто это писал, другим потребуется время )
источник

E

Evgen in Software Design/Architecture/Zen
Dmitry Eliseev
На чтение да.

А на запись где здесь запись в БД результата и запрос в БД на проверку уникальности с возвратом ошибки?
Без сайд-эффектов пожалуйста )
источник

k

knopkod4v in Software Design/Architecture/Zen
Roman
А, так вот как. С этого и надо было начинать. А то у вас, как поглядишь, весь хаскель иммутабельный и чтобы окрыть дверь дома, нужно создать новый дом с открытой дверью
но ещё есть момент, что порой нужно менять собственника такого VO и тут надо конечно создавать отдельный объект(т.к. другой собственник - другие инварианты и они (инварианты) могут не совпадать с инвариатами первого собственника). Если всё изначально иммутабельно - не нужно думать на эту тему + наверное иногда нужно бывает предыдущие значения сохранять 🤔
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Evgen
Без сайд-эффектов пожалуйста )
Дурь
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Без них никуда
источник

E

Evgen in Software Design/Architecture/Zen
Apache DOG™
Без них никуда
Чьорт
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Но это не означает что ФП поломалось
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Подсказка: монады
источник

R

Roman in Software Design/Architecture/Zen
knopkod4v
но ещё есть момент, что порой нужно менять собственника такого VO и тут надо конечно создавать отдельный объект(т.к. другой собственник - другие инварианты и они (инварианты) могут не совпадать с инвариатами первого собственника). Если всё изначально иммутабельно - не нужно думать на эту тему + наверное иногда нужно бывает предыдущие значения сохранять 🤔
Про VO я согласен. Пытаюсь нащупать границу иммутабельности, которую пропагандируют как вездесущую
источник