Size: a a a

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

2020 November 05

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
ETL
Мне кажется, что диспетчер это диспетчер (во всяком случае, его название не отражает то, что оно хранит состояние). Собственно и на картинке мы видим, что диспетчер обращается к "memoized state queue", т.е. нет у него собственного состояния.
Ну он из него получает проброс этой queue
источник

AB

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
user = await getUser();
posts = await getPosts(user);
post_comments = await Promise.all(posts.map(post => getPostComments(post)))
грубо говоря, на практике это будет так (если в кложе с многопоточностью)
(let [user (get-user)
     posts (get-posts user)]
 (pmap get-post-comments posts)


на практике, если постов много, оптимальнее, чтобы get-posts возвращала данные с комментами
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Alex Bubnov
в каком смысле?
Ну, как выглядят гринтреды без раскраски функций я в курсе (Go), как выглядят эффекты/continuations я не знаю
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
грубо говоря, на практике это будет так (если в кложе с многопоточностью)
(let [user (get-user)
     posts (get-posts user)]
 (pmap get-post-comments posts)


на практике, если постов много, оптимальнее, чтобы get-posts возвращала данные с комментами
Здесь везде фьючеры спрятаны?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
грубо говоря, на практике это будет так (если в кложе с многопоточностью)
(let [user (get-user)
     posts (get-posts user)]
 (pmap get-post-comments posts)


на практике, если постов много, оптимальнее, чтобы get-posts возвращала данные с комментами
как будет работать Promise.all на большой коллекции — надо разбираться, и устроит ли такое поведение
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Ну, как выглядят гринтреды без раскраски функций я в курсе (Go), как выглядят эффекты/continuations я не знаю
за эффектами - в ocaml-multicore. за continuations - в scheme(call/cc) или в project loom.
источник

ST

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

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Alex Bubnov
за эффектами - в ocaml-multicore. за continuations - в scheme(call/cc) или в project loom.
я пока не понимаю, как call/cc поможет красиво решить проблему с фьючерами
источник

AB

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

MB

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

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
В то же время, непонятно, хорошо ли, что от нас спрятали асинхронную часть
источник

ST

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
В то же время, непонятно, хорошо ли, что от нас спрятали асинхронную часть
судя по тому, что сайты тормозят — плохо 😊
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
В то же время, непонятно, хорошо ли, что от нас спрятали асинхронную часть
чем больше опыта приобретает программист, тем больше он страдает от того,  что от него спрятали 😊
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Гринтреды наверное и правда прикольно, но ждем, пока принесут
core.async хватает
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
то есть если хочется просто долгую возню с постами сделать в фоне, то просто await на всю функцию, которая это делает
Ну я и сам так делал, когда мне надо было в кложуре (эвэйтил всю коллекцию), но это не то же самое, что в джсе (потому что блокируем наш поток). А вот чтобы по другому сделать нужно фидимо коллбэк хэлл городить
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Borisov
Ну я и сам так делал, когда мне надо было в кложуре (эвэйтил всю коллекцию), но это не то же самое, что в джсе (потому что блокируем наш поток). А вот чтобы по другому сделать нужно фидимо коллбэк хэлл городить
await в clojure?
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
чем больше опыта приобретает программист, тем больше он страдает от того,  что от него спрятали 😊
Ну вот хаскель про то, чтобы не прятать вообще ничего и поэтому на нем больно программировать)
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Sergey Trofimov
await в clojure?
@, сори, что смешал опять понятия
источник