Size: a a a

Software Design/Architecture/Zen

2020 October 07

AD

Apache DOG™ in Software Design/Architecture/Zen
Алексей Гевондян
в том, что с использованием ООП у тебя есть понятие "объект", есть данные, стейт, а в случае с ФП у тебя есть только поведение?
Все есть
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
где?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
монадой пахнуло?)
источник

Д

Дмитрий in Software Design/Architecture/Zen
Подогнали фп под ооп
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Данные есть
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Стейт есть, от этого монады
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
понятно что есть, ибо процессор есть набор регистров) а также память, и все это - данные)
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Как и внешний мир
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Просто с этим всем работают по иному
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
ты можешь просто написать что-то, что из одних данных сделает другие. может уменьшить, может увеличить, а константы кстати в фп есть же, да? переменных нет?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
т.е. можно написать функцию, которая возвращает константу. или нет?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
если да, то тогда вопрос, какие типы данных существуют в фп? список чисел, или список списков чисел константой можно из функции вернуть?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
я просто фп занимался на уровне курсов университета, не писал никогда что-то реальное на фп языках. но вокруг столько хайпа, что несколько любопытно разобраться... можно конечно уйти рыться самостоятельно, если так и надо поступить - то ок. может зря я тут все это развожу
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Алексей Гевондян
в том, что с использованием ООП у тебя есть понятие "объект", есть данные, стейт, а в случае с ФП у тебя есть только поведение?
"объект" у тебя обуславливается "приватным стэйтом". То есть когда у тебя есть жесткая привязка перехода состояний в пределах какого-то модуля. Если у тебя функции меняющие стэйт и типы (алгебраические типы) определены в одном модуле то в целом разницы концептуально нет.

есть еще важная штука - за счет отсутствия изменения стэйта как такового (все это просто цепочки преобразования данных из одного типа в другой) "польза" от инкапсуляции снижается сильно. Тебе все еще важно иметь понятие модуля что бы код весь был "кохизив" но в целом наличие "условной границы" уже не столь важно.

p.s. а еще есть скоупы которые куда лучше предоставляют тебе сокрытие данных нежели "инстансы классов" в которые рефлексией можно залазить)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
я как человек который в жизни на ФП ничего сложнее редакс сторов не писал но как человек который ценит алгебраические типы, имутабельность и однонаправленность потоков данных могу сказать что все эти "ООП vs ФП" это спор ниочем и пердеж в воздух. Ни та ни другая "идеология" не дает ответ на вопрос "как быть". Счастье где-то по середине в комбинации этих идей (экторы)
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
сложна. выглядит как наука. а хочется прикладной аспект какой-то увидеть... впрочем это просто другая теория, ооп само по себе тоже такая же теория, далекая от реальности...
источник

k

knopkod4v in Software Design/Architecture/Zen
Алексей Гевондян
сложна. выглядит как наука. а хочется прикладной аспект какой-то увидеть... впрочем это просто другая теория, ооп само по себе тоже такая же теория, далекая от реальности...
это да, думать сложна =(
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
в том то и дело, что возникает ощущение, что фп - это просто про показать свою круть, повыеживаться, ну и что-то там лабораторное показать. а ля научный эксперимент. в других контекстах как-то не видать этого.. люди просто хреначат код на джаве, жс, пхп, шарпе, питоне и т д)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Алексей Гевондян
сложна. выглядит как наука. а хочется прикладной аспект какой-то увидеть... впрочем это просто другая теория, ооп само по себе тоже такая же теория, далекая от реальности...
я возможно сча оч неграмотную вещь скажу но есть два аспекта ФП - типы и шота типа лямбда счислений. Последнее мне кажется интересной концепцией из-за такой вещи как emergence (та же идея стояла за ООП алана кея и Экторов Хьюита).

Если что смолток (который ООП) больше на лисп похож был (который ФП).
источник

А

Алексей in Software Design/Architecture/Zen
Алексей Гевондян
в том, что с использованием ООП у тебя есть понятие "объект", есть данные, стейт, а в случае с ФП у тебя есть только поведение?
можно данные сделать
источник