Fork me on GitHub
#clojure-russia
<
2017-03-13
>
misha10:03:20

господа, а есть ли какой готовый/классический способ доставать из датомика/датаскрипта объекты по частичной форме:

по
{:foo/bar 1
 :foo/baz {:baz/qux 2}}
достать 
{:foo/bar 1
 :foo/baz {:baz/qux 2}}
 :foo/qux "lol"}

misha10:03:36

потыкал в это правилами и функциями, и чё-то не очень: правила нужно явно в аргументы запроса передавать (не получилось сохранить правило в базе и изнутри запроса его найти и тут же вызвать) функции нужно вызывать на "pulled" объекте уже, а не на id, и значит надо вытаскивать в N ветвистых объектов из базы и фильтровать - может дорого быть (точнее уже дорого)

misha10:03:46

динамически макросом построить запрос-фильтр по одноуровневой мапе - ок, но когда начинаются вложенные фыльтры - там надо с биндингами танцевать. может чё натанцованное есть?

y.khmelevskii11:03:14

приветствую. можете посоветовать какой-то открытый проект на pedestal? хочу посмотреть как люди организовывают проект в котором api где много CRUD.

y.khmelevskii11:03:22

кстати, хочу заюзать pedestal-api вместе с prismatic/schema. для генерации swagger. Может вместо prismatic/schema заюзаю spec если получится

misha11:03:37

глять на https://github.com/cognitect-labs/vase, это пьедестальная либа для генерации всяких крудов

y.khmelevskii11:03:00

спасибо, посмотрю

y.khmelevskii11:03:15

при чем от самого когнитект )

misha11:03:29

свеженькое

Roman Liutikov11:03:06

@andre afaik bootstrapped cljs нельзя скомпилить в advanced режиме

andre11:03:54

пришлось 9 мб красивого кода тащить в тул, ну чтож поделаешь, зато кайф

andre11:03:34

реально очень удобно, всем не угодишь, у всех разные пожелания, а тут нате вам код и далайте со стейтом что хотите )

Roman Liutikov11:03:42

В gzip должно быть чуть больше 1МБ :)

Roman Liutikov11:03:29

Я ни разу не находил толкового применения визуализаторам стостояния

Roman Liutikov11:03:43

@andre в чем профит?

Roman Liutikov11:03:59

Логирование событий — да, удобно

misha11:03:10

(fn [db sub-rules]
        (let [call-rules (map first sub-rules) ; '[(rule ?e) [?e :foo/bar 1]] => '(rule ?e)
              the-rule (into '[(the-rule ?e)] call-rules)
              rules (conj irules the-rule)]
          (ds/q '[:find [?e ...] :in $ % :where (the-rule ?e)] db rules)))
opieop

andre11:03:27

я вообще без него разрабатывать не могу, это понимание состояния приложения

misha11:03:25

а что филтр делает?

Roman Liutikov11:03:29

Хм хм, может быть

misha11:03:39

полей кол-во уменьшает?

Roman Liutikov11:03:50

Мне обычно хватает логирования, чтобы понимать, что происходит

andre11:03:59

ну может быть

misha11:03:04

взял бы датаскрипт, и пулл паттерны бы принимал в серч инпут

misha11:03:21

дописал бы автокомплит на существующие поля и победа

andre11:03:29

логирование отличается немного

Roman Liutikov11:03:39

А ещё можно прикрутить спеку и показывать невалидные поля в состоянии :)

misha11:03:42

для этого спека на стейт быть должна в проекте

misha11:03:33

@andre вообще - ништяк, конечно

misha11:03:45

а я обхожусь диффом самопальным в консольку

Roman Liutikov11:03:01

Во, только хотел сказать об этом :)

andre11:03:32

ну тоже годится ))

misha11:03:01

(u/add-print-watch *STATE ::STATE)
:ui.state/STATE:
{:show-item-modal? true,
 :pinned-items #{},
 :selected-tab :ui.tab/sets, 
 :modal-item-id 352, 
 :__figwheel_counter 96}

--- {:__figwheel_counter 95}
+++ {:__figwheel_counter 96}

Roman Liutikov11:03:19

а что с репл-дривен в cljs? кто как работает? интересно практические примеры

Roman Liutikov11:03:25

вот есть фигвил и есть репл, большинство нужд покрывает фигвил

misha11:03:57

в таком духе. но для стейта в 500 ключей - надо подхачить, а то заспамит жесть

Roman Liutikov12:03:08

@misha скинь утилику?

misha12:03:47

только она бажная opieop

andmed23:03:58

ппц этот гугл клауд. pptp -- не работает, sip voip -- не работает...