Size: a a a

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

2020 February 19

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
И очень хороши в такой ситуации.
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Vlad 💩
все пихать в джсон я считаю плохой практикой, если можно нормализовать нужно нормализовывать и использовать реляционную бд, запихнуть все в джсон всегда можно только вот наоборот не всегда
В чем проблема обратной конвертации?
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Но я не призываю всех использовать json.:) Я поделился своим мнением. Мне понравилось работать с jsonb в postgresql.
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Maxim 🐬 Humenyuk
Насчет GraphQL, вот такое есть мнение, и я думаю многие с ним согласяться
может быть!
источник

V💩

Vlad 💩 in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
В чем проблема обратной конвертации?
ну если взять монгу, то может получиться свалка данных если за этим не следить в ручную (рекорды которые ссылаются на несуществующие записи) которые потом будет невозможно или очень тяжело запихнуть в тотже постгрес. ну а смысла следить в ручную не вижу если любая реляционная бд делает это атоматически
источник

V💩

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

p

programmist ⌨️ in Clojure — русскоговорящее сообщество
Maxim Penzin
вся хрень начинентся, когда хочется искать по частям джсона или что-то в нем немного модифицировать
SELECT *
FROM users u
WHERE (u.details->'site_activitity'->>'last_login')::DATE>='2020-02-18'::DATE;

UPDATE users SET details = COALESCE(details,'{}')::JSONB || ('{"site_activity": {"last_visit": "'||Now()::TEXT||'"}}')::JSONB where id=11111;
источник

V💩

Vlad 💩 in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
Мультиметоды лучше.
они вам помогут если вы ожидали такой джсон

title: длина хобота
value: 20
unit: cm

а пришел без unit? потому что кто-то забыл его добавить или посчитал не нужным
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Поможет, я ведь буду делать диспатчинг по типу, а не по юниту.:) А функция, которая будет отображать покажет без юнита, что плохо, но никак не связано с диспатчингом. Нужно было валидировать значения перед тем, как класть в базу.
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Но и в реляционной базе тоже нужно описывать констрейнты.
источник

p

programmist ⌨️ in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
Но и в реляционной базе тоже нужно описывать констрейнты.
Даже если это лежит в джейсоне, можно проверять в момент вставки/апдейта триггером. И откатывать транзакцию с внятным текстом ошибки.
источник

V💩

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
кому интересно, опубликовал шаблон проекта для разработки статических сайтов https://github.com/serioga/static-website-clojure
источник

p

programmist ⌨️ in Clojure — русскоговорящее сообщество
Vlad 💩
ну что-бы сделать валидацию нам нужно принять какие-то требования допустим у нас всегда должен быть джсон вида как я указал выше тогда и смысл в таком джсоне пропадает потому что он уже не динамический и его можно заменить обычной таблицей
или, если хранить разнородное в джейсоне, можно для хобота делать одну валидацию, а для цвета глаз другую.
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Vlad 💩
ну что-бы сделать валидацию нам нужно принять какие-то требования допустим у нас всегда должен быть джсон вида как я указал выше тогда и смысл в таком джсоне пропадает потому что он уже не динамический и его можно заменить обычной таблицей
Но джойны-то исчезнут от применения jsonb.
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
Мне нужно именно ctrl+shift.
в окне настроек тыкаеш в шорткат и нажимаешь то что хочешь
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
никаких карабинеров не нужно)
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Kirill Chernyshov
в окне настроек тыкаеш в шорткат и нажимаешь то что хочешь
Unfortunately, alt+shift by themselves are not allowed as a shortcut. You need to have a non-control key in the mix. The closest you can come is to use alt+z (using 'z', which is next to shift on the left side of the keyboard). You also have the option of setting the shortcut for the reverse order of the spin. alt+shift+z is a natural option for this.
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Kirill Chernyshov
в окне настроек тыкаеш в шорткат и нажимаешь то что хочешь
Это было первое, что я попробовал. Только потом полез в гугл.
источник

V💩

Vlad 💩 in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
Но джойны-то исчезнут от применения jsonb.
а какая у вас будет структура в базе для этого случая про зверей? просто любопытно.
источник