Size: a a a

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

2019 July 01

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Видал кто такой язык??
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
у меня в голове остался такой паттерн управления ресурсами из эрланга - есть процесс-регистратор, есть процессы-холдеры ресурсов, главный интерфейс регистратора - атомарный find-or-start, по имени должно быть понятно, что делает.
весь жизненный цикл ресурса - инициализация, таймеры на ttl, что там еще может понадобиться - спрятана в процессе-холдере, очень удобно получается.

внимание, вопрос - как это перетаскивается на идиоматичную кложу?
источник

V0

Vlad 0xcd55d8db in Clojure — русскоговорящее сообщество
@nwalker я обычно беру https://github.com/weavejester/integrant ресурс-холдеры это компоненты там.
также есть компонент(ы) логики, который зависит от нужных ресурсов и в котором они инжектятся как хешик и таскаются везде где надо.
в конце концов этот бизнес компонент(ы) инжектится в сервер (http/smtp/websocket)
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Иван Федоров
а у кого есть опыт продолжительный с датомиком – какие больные / любимые места? может есть любимые блог-посты на эту тему?
у меня датомик в пет-проектах. напрягает, что на сложных запросах приходится выбирать данные и шить их вручную; еще что нет сортировки, ну и еще что-то по мелочи
источник

A

Artem in Clojure — русскоговорящее сообщество
Ivan Grishaev
у меня датомик в пет-проектах. напрягает, что на сложных запросах приходится выбирать данные и шить их вручную; еще что нет сортировки, ну и еще что-то по мелочи
+ нет лимита и оффсета
источник

A

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

A

Artem in Clojure — русскоговорящее сообщество
Чтобы в бою не пришлось костылить
источник

V0

Vlad 0xcd55d8db in Clojure — русскоговорящее сообщество
> + нет лимита и оффсета
а есть вообще базы, которые оптимально делают оффсет? емнип напрмер ни одна реляционка не делает ничего умнее чем “поднять все данные, ака offset+limit”, но отдать только limit. собственно поэтому “православная пагинация” это курсоры типа “next” как делает fb или after=<last-sorted-value-on-page> как у gh
источник

A

Artem in Clojure — русскоговорящее сообщество
Vlad 0xcd55d8db
> + нет лимита и оффсета
а есть вообще базы, которые оптимально делают оффсет? емнип напрмер ни одна реляционка не делает ничего умнее чем “поднять все данные, ака offset+limit”, но отдать только limit. собственно поэтому “православная пагинация” это курсоры типа “next” как делает fb или after=<last-sorted-value-on-page> как у gh
mongo? хотя с ней еще не работал
источник

V0

Vlad 0xcd55d8db in Clojure — русскоговорящее сообщество
вот как раз монга была в проде и по крайней мере во времена 2.х оффсет там был тоже тупой
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Vlad 0xcd55d8db
@nwalker я обычно беру https://github.com/weavejester/integrant ресурс-холдеры это компоненты там.
также есть компонент(ы) логики, который зависит от нужных ресурсов и в котором они инжектятся как хешик и таскаются везде где надо.
в конце концов этот бизнес компонент(ы) инжектится в сервер (http/smtp/websocket)
а если эти ресурсы не определены на момент старта приложения?
ну, типа, это ресурсы, инициализирующиеся по запросу - типа, пользовательская сессия, или открытый файл, или еще что-то такое.
источник

A

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

A

Artem in Clojure — русскоговорящее сообщество
или я чет путаю?)
источник

V0

Vlad 0xcd55d8db in Clojure — русскоговорящее сообщество
Alex Bubnov
а если эти ресурсы не определены на момент старта приложения?
ну, типа, это ресурсы, инициализирующиеся по запросу - типа, пользовательская сессия, или открытый файл, или еще что-то такое.
если запрос короткоживущий, то можно в мидлваре засунуть ресурс в запрос, на выходе почистить.
если долгоживущий, то возможно есть проблемы поважнее, Артем прав, лучше держать стабильный коннект к стору и оставаться “stateless"
источник

d

dima in Clojure — русскоговорящее сообщество
результаты опроса подъехали
источник

d

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

https://docs.google.com/spreadsheets/d/1VChmwhKhypF1uu0jacem5hsPEb2yEpUJkJiagX6qOWw/edit#gid=1733842144

В опросе приняло участие 621 человек, было принято 618 ответов. Статистику вы можете посмотреть по ссылке выше по каждой колонке. Для этого в правом нижнем углу выбирайте «Анализ данных». Краткий итог по зп:

Минимум: $391
Максимум: $20 000
Среднее: $2400
Медиана: $2200

Большинство ответов приходится на диапозоне от $1000 до $3100.
источник

d

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

A

Artem in Clojure — русскоговорящее сообщество
ну не Америка))
источник

A

Artem in Clojure — русскоговорящее сообщество
но за то понятно сколько на рынке крутых и менее крутых специалистов)
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Artem
так пользовательская сессия это запись в сторе(в каком удобно)
Не обязательно, но ладно, сессия и вправду не лучший пример.
источник