Size: a a a

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

2021 August 12

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
а я сначала написал future
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
который делает совсем другое
источник

ST

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
future не видел, видимо прочёл после исправления
но к ответу на изначальный вопрос — проще посмотреть исходники атома
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
атомы как раз понятнее, опять же их повсеместно используют.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
а вот с агентами как-то сложнее
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
это клево, но в мире k8s не актуально
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну, я и промисы и футуры повсеместно использую
вот агентам только не нашёл применения, да
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
на агенты я смотрел с позиции сделать что-то быстрее, но они для другого, что мне не понадобилось 😊
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
да, датомик прибит гвоздями к AWS, да и кому этот яндекс нужен
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
да если бы. io-bound код без перегрева мозга пишется только на go и erlang/elixir до сих пор.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
ну и в конце концов, не весь мир поглощен k8s, даже внутри его всегда остается место менеджменту ресурсов уровня приложения.
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Яндекс это пример. Он так-то поудбнее и скорее всего будет поддерживать Cloud Formation
источник

VK

Vadim Komarov in Clojure — русскоговорящее сообщество
Я читал, что они на разных уровнях работают

https://twitter.com/mononcqc/status/1122872187894018048
источник

VK

Vadim Komarov in Clojure — русскоговорящее сообщество
Вот здесь чуть подробнее описывалось https://dashbit.co/blog/kubernetes-and-the-erlang-vm-orchestration-on-the-large-and-the-small
источник

ВП

Владислав Петров... in Clojure — русскоговорящее сообщество
Господа, есть где-то годный материал по макросам для новичков? прям для чайников?
источник

VL

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

AB

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

в базе хочется видеть примерно так
create table outer_things (... inner_thing_type text, inner_thing_vsn integer, inner_thing_data json, ......)

в коде же не хочется поддерживать руками маппинг
inner_thing_type :: text -> inner_thing_handler :: (
 unpack :: (vsn :: int, data :: json) -> t(),
 pack :: (t()) -> (vsn :: int, data :: json)
)

извиняюсь за неровный псевдокод, надеюсь, суть ясна
сверх того, в коде хочется держать функции pack и unpack в одном скоупе и, наверное, привязывать их к одному и тому же критерию.
в эликсире я решил вопрос поддержки абьюзом протоколов - для протокола можно на старте вытащить все имплементации, запросить из них type, построить мапу и в ней искать нужный unpack. нужный pack получается просто вызовом Protocol.pack(thing.inner_thing).  

а как это канонично решать в кложе? мультиметоды? протоколы?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
а откуда у тебя берётся связь объект/хэндлеры?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
если глобально - я ее определяю сам.
если в эликсире - unpack на выходе дает struct, для которого определена реализация протокола.
источник