Size: a a a

Clojure — русскоговорящее сообщество

2020 August 20

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
вот вот
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Ну уж нет, не на много. С ооп подходом у тебя не будет достаточно информации о происходящем, когда ты взглянешь на отдельную функцию. Тебе надо будет следить за тем, когда там какие объекты были созданы, как проинициализированы, каков их стейт на момент вызова твоей функции

С чистыми функциями все входные данные у тебя будут тут же на месте сразу. А если будет какой-то стейт, то это будет жирно выделено всякими deref/swap!/reset!
а я не говорил про ООП)
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
ФП с типами
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
да, в ООП неявные вещи могут взорвать тебе всё
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
(fun () -> ())
а я не говорил про ООП)
А, ну пиши кложу с типами https://github.com/clojure/core.typed
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
Так и я посматриваю на Кложу всё время
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
жду типов)
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
или что-то такое)
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Ты просто упираешься в то, что "на кложе можно написать непонятный код"
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
не, я упираюсь в то что на Кложе из за ДИНАМИКИ можно ПРОЩЕ написать непонятный код
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Ну хорошо, это малая цена за то, что получаешь в замен
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Я за рабочий опыт не сталкивался с тем, чтобы это была большая проблема
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
я по всё это могу въехать - дело времени, но это сбивает пыл(
источник

Г

Григорий in Clojure — русскоговорящее сообщество
источник

Г

Григорий in Clojure — русскоговорящее сообщество
жду типов)
источник

Г

Григорий in Clojure — русскоговорящее сообщество
А. Было. сорян
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
с типами все еще интереснее - если иерархия не была хорошо продумана заранее, то потом на каждый чих делают производные типы, где-то внутри методов их начинают кастить один в другой по совсем сторонним условиям
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Ну хорошо, это малая цена за то, что получаешь в замен
жаль что приходится выбирать между лаконичностью и отсутсвием типов и кашей в коде, но зато с типами
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
и тут вообще красота - компайдлер нигде не ругается, но сегфолт потом почему-то вылетает напредсказуемо
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Maxim Penzin
с типами все еще интереснее - если иерархия не была хорошо продумана заранее, то потом на каждый чих делают производные типы, где-то внутри методов их начинают кастить один в другой по совсем сторонним условиям
И потом надо сидеть смотреть какие там у них геттеры, сеттеры, как их копировать, мержить, как маппиться. А в кложе seq/мапа и всё удобно
источник