Size: a a a

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

2021 August 31

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
oke
источник
2021 September 01

A

Aleksey @cheatex in Clojure — русскоговорящее сообщество
1. Open world assumption. Её семантика проверить то что знакомо и не трогать то что не знакомо.
2. Можно применить к другим задачам помимо валидации. Из популярного генерация тестов и примеров.
3. Может использоваться как язык запросов, регулярка.
4. Расширяема произвольными предикатами.
источник

nn

noname nobody in Clojure — русскоговорящее сообщество
ORM? OMG!
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ковыряю щас один продукт от IBM. Вроде все достойно. Более-менее правильный ООП. А потом бабах: в новой версии попытались ввести chained parsers, но не смогли…
Т.е. в классе Parser завели поле chainedParser, а как потом это юзать не смогли придумать.
Это я к чему?
Не осилили они композируемость.
источник

nn

noname nobody in Clojure — русскоговорящее сообщество
в кложе ООП вроде нет от слова совсем. что за продукт?
источник

LL

Lämppi Lütti in Clojure — русскоговорящее сообщество
А чем рекорды не ооп?
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
М, а чер ооп?
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Инкапсуляции? Скрытый стейт?
источник

LL

Lämppi Lütti in Clojure — русскоговорящее сообщество
Рекорды сами по себе инкапсуляции, а скрытый стейт даже нигде не упоминается как что-то нужное
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Да, не. Это не про кложу. Это скорее про композируемость в ООП. Слёзы и боль.
Продукт — IBM SDI.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Они попытались сделать что-то типа «цепочки ответственности» или как оно там называется. И не стали пока полностью впиливать.  Только поле в классе оставили и где-то в доках пометили: future implementation.

А мне щас надо!
источник

nn

noname nobody in Clojure — русскоговорящее сообщество
рекорд не обладает поведением. из названия - набор каких-то данных (кортеж с именами)
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
А методы в рекорды можно добавить?
источник

LL

Lämppi Lütti in Clojure — русскоговорящее сообщество
Можно, через протоколы
источник

nn

noname nobody in Clojure — русскоговорящее сообщество
поля рекорда имутабельны же
источник

LL

Lämppi Lütti in Clojure — русскоговорящее сообщество
Если сделать их атомами, то мутабельные
источник

nn

noname nobody in Clojure — русскоговорящее сообщество
в этом и состоит большая ошибка неправильного понимания ООП. в хорошом объекте данные не торчат наружу. только методы.
источник

LL

Lämppi Lütti in Clojure — русскоговорящее сообщество
Это уже натягивание совы на глобус
источник

LL

Lämppi Lütti in Clojure — русскоговорящее сообщество
Я тоже так могу: хорошее ооп это когда поля иммутабельны, а наследования нет
источник

nn

noname nobody in Clojure — русскоговорящее сообщество
простой пример распознавание текста с экрана.  допустим объект распознает текст и сохраняет данные в виде списка кортежей (слово, координаты). если его выставить наружу то сразу же в полезут баги. если же оно приватное, то разработчик компонента контролирует стэйт и объектом легко и удобно пользоваться. при наличии интерфейса мы даже забываем о реализации(используя инверсию зависимостей). но да ооп сложней фп. фп это кирпичи, ооп это клей.
источник