This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-10-04
Channels
- # aleph (2)
- # beginners (80)
- # boot (18)
- # cider (6)
- # cljs-dev (14)
- # cljsrn (5)
- # clojure (114)
- # clojure-android (5)
- # clojure-dev (8)
- # clojure-greece (6)
- # clojure-italy (9)
- # clojure-russia (108)
- # clojure-uk (82)
- # clojurescript (158)
- # css (1)
- # cursive (21)
- # data-science (1)
- # datomic (66)
- # emacs (9)
- # ethereum (3)
- # fulcro (26)
- # graphql (7)
- # hoplon (25)
- # juxt (2)
- # keechma (34)
- # lein-figwheel (4)
- # leiningen (2)
- # off-topic (4)
- # om (5)
- # onyx (14)
- # parinfer (2)
- # pedestal (17)
- # planck (3)
- # portkey (14)
- # re-frame (23)
- # reagent (12)
- # ring (8)
- # rum (1)
- # shadow-cljs (506)
- # spacemacs (2)
- # vim (11)
- # yada (6)
эт наверное все видели http://clojured.de/call-for-proposals/
Как организовать работу с базой данных в clojure. Я наверно сильно избалован ORM. JDBC выглядит слишком низкоуровневой. Korma интересна, но терзают сомнения (игрушкой пахнет). Возможно кто то может подсказать вариант QueryBuilder позволяющий компоновать запрос из готовых кирпичиков?
а корма не то( у ханискл хорошо то, что ты работаешь со структурами данных, а в корме — макросы
орм — бяка
@U1U5ZNS9Z я эксперимент провожу https://github.com/darkleaf/publicator/blob/master/src/publicator/interactors/user/register.clj#L26-L31 пример крохотный, может быть не очень понятный. можно еще тесты посмотреть. тут идея в том, что бы сделать UnitOfWork и IdentityMap паттерны. но это "неортодоксально" и вообще ересь)) если интересно, могу рассказать подробнее
это все от задачи зависит и размера проекта когда людям рассказываешь, то размер проекта как-то не учитывается вот и спорим про квадратное и мягкое 😃
@U1LR4AN75 Спасибо за пример и предложение. Изучу по подробней.
Еще https://github.com/krisajenkins/yesql есть, правда что-то я не очень им доволен
тут нужно смотреть бывают случаи, когда лучше sql текстом написать в постгресе есть куча расширений, как их в dsl перевести? может быть и можно
Ну в простых случаях это выглядит скорее так https://github.com/jkk/honeysql#extensibility
ну можно расширить но тебе нужно постоянно переводить с одного языка на другой это как coffee script, т.е. ты думаешь на js, но тебе еще нужно новый синтаксис, и постоянно переводом заниматься
можно сделать разделение на команды и на запросы это уже абстракция команды реализовывать через dsl а запросы на sql
Не хотелось бы писать типовые select и join для какой то сущности в 10 запросах различающихся только блоком where.
@U1CTNDLKX а по подробнее?
Ну да, то есть Cursive их не понимает, что, откуда они. Опечаться можно. У курсива бесплатная лицензия есть)
Плюс часто еще надо результаты модифировать, подчеркивания в - перевести, например, обертки иногда приходится писаться, получается как-то размазано, часть кода в sql, часть в clj
@U1CTNDLKX что ты подразумевал под функциями сгенерированными из sql?
@U1LR4AN75, не раскроете свою мысль о преимуществах hugsql?
если нужно написать сложный запрос. например с несколькими джоинами, нестандартными jon lateral, с полнотекстом, с json, массивами, прочими расширениями постгреса
Кто чем пользуется — vs
?
у boot хорошая идея, но не все ее придерживаются там жопа с cljs, в lein все в разы проще
да, простой, но
более композируемый, кложа-вей
и у lein’а плагины, так что еще плюсик ему, хотя может и у бута есть
у boot идея правильная а реализация никакая (это мое мнение, может быть излишне категоричное)
а что не так было? у меня прямо противоположные впечатления
boot-cljs он пишет результирующий js в папку с проектом, а не во временную директорию
с докером вроде везде проблемы, это не от сборщика зависит
я уже не помню всех деталей но условно 2 недели заняло, что бы разобраться в boot-cljs и дня 2 чтобы figwheel поставить
эт да
к этой “фиче” я до сих пор не привык)
это первый старт?
выдели побольще памяти докеру и не придется ждать)
по дефолту докер дает всего два гига из 8-ми доступных на моей машине и этого буту маловато
по поводу boot-cljs у меня как-то так сделано
(deftask cljs-build []
(comp
(cljs :source-map false
:optimizations :advanced)
(sift :invert true :include #{#"\.out/.*"})
(sift :move {#"incs/js/main.js$" "public/incs/js/main.js"})))