Clojurians
# clojure-russia

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

nicola 23:55:10

Мне кажется они лукавят говоря про js. Java тоже на апплетах поднялась :simple_smile:

turtle 00:11:23

ИМХО, ява на апплетах так и не поднялась.

turtle 02:10:22

Во, что получилось. Правда, parenscript.

rm 07:55:36

утра. Подскажите с датаскриптом, если мне надо один запрос, чтобы все объекты показывать, а другой -- с условием, мне и правда надо два запроса делать или можно какой-то ход конем сделать? Собственно, разный в двух запросах будет только :in. Может, тогда query как-то собирать из веточек?

rm 07:55:46

стремное переиспользование получается

rm 07:58:55

а может, и норм

prepor 09:27:16

query это просто структура данных. можешь делать с ней что угодно

delaguardo 09:27:18

смотрите как прикольно - http://www.overreact.io

rm 09:46:37

prepor: да я уже и собираю. Вроде нестрашно получилось, дописываешь (conj query :in '$ '?blablabla) и все

artemyarulin 09:59:52

у меня после дотнета аллергия на всякие прожект темплейты и генераторы, бррр. А вот @turtle за parenscript спасибо, не знал о таком

artemyarulin 10:00:35

а почему его то в итоге а на CLJS? На беке common lisp или просто решили поиграться?

artemyarulin 10:00:42

@turtle: ^^

turtle 10:09:54

На беке не коммон лисп. Чисто parenscript js делает. Там в этой игре и бека не предусмотрено.

artemyarulin 10:16:06

дак а почему его в итоге?

turtle 10:20:20

Почему parenscript - изначально наш третий человек заявил, что не знает ClojureScript, а только CommonLisp, поэтому ему тяжело будет. :simple_smile:

turtle 10:20:42

Я попоробовал сделать демку на parenscript - у меня получилось. Движок выбрали яваскриптовый Phaser.

turtle 10:21:23

Потом я начал догадываться, что программировать он и не будет, что, собственно, так и получилось. Поэтому я попробовал сделать эту же демку на ClojureScript, но у меня не получилось. :disappointed:

turtle 10:22:00

Были какие-то непонятные глюки, которые ничем объяснить я не мог. На Phaser есть обёртка на ClojureScript phzr, кстати. Что прикольно было было.

turtle 10:22:17

В общем, с глюками разобраться не смог и, в итоге, начали писать на parenscript.

lowl4tency 10:48:02

С новым годом, поцоны

turtle 13:38:46

Туса будет сегодня?

a.espolov 17:05:06

коллеги

a.espolov 17:05:41

а есть вариант без изврата перебрать коллекцию, так чтобы можно было получить индекс элемента в перебераемой коллекции

rm 17:06:01

map-indexed

ul 17:06:21

(for [[i e] (map vector (range) coll)])

a.espolov 17:06:51

ох ты ж

prepor 17:10:18

map-indexed есть в core

prepor 17:10:27

а, да, написали, сорян )

a.espolov 17:11:50

вроде пашет

a.espolov 17:12:02

правда валится на 3-ем элементе

a.espolov 17:14:57

но виной всему material-ui

linuccio 17:18:45

Покажите кто-нибудь как выглядит Garden в фронтэнде

linuccio 17:19:14

«Стили в компонентах»

nicola 18:09:36

``` (defn tray [] [:div.tray (s/style [:.tray {:position "fixed" :bottom 0, :right 0 :width (s/g 4) :z-index 100 :border (s/border) :font-size (s/v 0.5) :line-height (s/v 1)} [:.note {:border-bottom (s/border) :padding (s/v 1)}]])

[:div (for [n @note/notifications] ^{:key (:id n)} [:div.note {:on-click #(rm-note % n)} (:text n)])]]) ```

nicola 18:09:43

как-то так

delaguardo 18:19:56

а в чем профит такого ада?

linuccio 18:24:26

Это реагент?

larhat 18:24:41

job security through code obscurity

abtv 18:30:59

А стили и классы локальные я так понимаю?

artemyarulin 18:30:59

скажите это чувакам с реакта которые во всю юзают https://speakerdeck.com/vjeux/react-css-in-js

linuccio 18:43:34

@abtv а что есть локальные классы?

delaguardo 18:44:56

посмотрите лучше это - https://www.youtube.com/watch?v=1yUFTrAxTzg

linuccio 18:45:02

Волшебным образом все прописывается прямо в стили элементов?

abtv 18:47:40

Ну я это и имел ввиду))

abtv 18:48:26

А иначе будет как-то много лапши

rm 19:05:19

где-то я читал, что совать все в стили элементов фигово, потому что браузер загнется это рендерить

rm 19:05:26

но мопед не мой, доказать не могу

abtv 19:07:59

Зато на основе локальных стилей можно собрать один css и подсунуть его браузеру, т.е. объединить несколько стилей, где они совпадают и уже браузеру хорошо. Может оно так работает?

abtv 19:09:53

@nicola: мы тут гадаем, а как garden работает и в чем преимущество?

nicola 19:12:08

Ну для меня пока важна locality стилей в компонентe и возможность потенциально программировать css. Адово выглядит с непривычки - можно хэлперов накатать - взять успешные из post-css.

nicola 19:12:27

garden работает как honeysql, hiccup, те это структура данных

abtv 19:12:35

Так он правда в style пишет?

nicola 19:12:36

собирай ее как хочешь

nicola 19:12:44

нет, это уже ты сам

abtv 19:12:49

Или постпроцессор?

abtv 19:13:00

Ага

nicola 19:13:18

у него api одна функция (css [:.selector {:prop "val})

nicola 19:13:27

data dsl

nicola 19:13:50

как ты им воспользуешься, какие хэлперы напишешь - твое дело

rmuslimov 19:14:26

@nicola а правильно ли я понимаю, что после того как начать использовать garden дизайнера уже нельзя использовать? и придется весь css писать самому?

nicola 19:14:29

я пока делаю в компоненте тэг - скрипт - и туда пишу

nicola 19:15:29

@rmuslimov: есть такое - это для личных целей :simple_smile: хотя можно попробовать обучить

nicola 19:15:43

пока идет туговато с дизайнерами

nicola 19:15:45

:simple_smile:

rmuslimov 19:16:09

ясно, спасибо

nicola 19:17:36

Всеже раз уж реакт запихал html в js, то и css тутаже :simple_smile:

abtv 19:18:31

А в чем проблема с дизайнерами/верстальщиками? Они же могут html и css читать?

rm 19:18:45

имхо это неправильно. В отличие от разметки стили правятся гораздо реже

rm 19:19:21

хочется собирать кложей -- собирай отдельной таской один раз, а не на ходу

abtv 19:19:40

Идея в компонентности

abtv 19:19:49

Все в одном месте

rm 19:21:12

так css и без этого прекрасно отделен, зачем его втаскивать обратно?

rm 19:21:33

если что-то на ходу собирается, для этого должна быть причина

abtv 19:25:11

Мне кажется, что раньше про компоненты в вебе никто просто и не думал

abtv 19:25:56

Вот оно и вышло так, как есть сейчас

rm 19:27:40

def компонентность

abtv 19:29:38

Раньше разбивали технологически на части: разметка/стили/код, а сейчас все идёт к разбиению на компоненты: логически обособленные части приложения

rm 19:32:17

ну хорошо, но все еще выгодно разбить разработку на стили, фронт и бэк, потому что этим будут заниматься три узких спеца и они быстрее все сделают, чем три фулл-стек-мимопроходимца

rm 19:33:07

сказал человек, который все, кроме css (и то приходится местами) пишет сам

abtv 19:36:42

Вот-вот) в теории оно может и так, но не каждый себе может позволить держать три разработчика вместо одного, к тому же full stack разработчик мыслит решаемой задачей, а не тем, что это не моё, сами верстайте/кодируйте и т.д.

abtv 19:37:00

Просто решает задачу

a.espolov 19:46:00

так, а сегодня будет митап?

rm 19:51:06

Все чаще хочется такую штуку: Есть у меня атом со стейтом приложения на клиенте, и хочется автоматически разные его куски подтягивать с сервера. То есть, если нет, а надо, чтобы не писать везде более-менее одинаковые три строчки.

a.espolov 19:54:26

@rm: push&pull?

a.espolov 19:55:03

все равно придется определить функции по трансформации стейта на какое либо событие

a.espolov 19:55:32

было бы круто если бы эти функции и события на которые они реагируют тоже подтягивались с сервера

rm 19:59:20

штотакое трансформация стейта? Вот у меня есть датаскриптовая "бд" и из нее разными запросами рисуется список видео, список линков для видео, пагинация, еще что-то. Еще туда дописывается больше записей с сервера, когда пагинация заканчивается. Что из этого нужно подтаскивать с сервера?

abtv 19:59:39

Я думаю, что митап лучше на следующий понедельник: объявления не было, лучше в другой раз, чтобы все кто хочет участвовать могли запланировать заранее

rmuslimov 20:45:26

@abtv ну с точки зрения бизнеса наверное хорошо иметь дизайнера, верстальщика который не зависит от разработчика, таким образом можно разбить задачу на подзадачи: 1. подготовить wireframe c дизайнером
2. наверстать его с верстальщиком
3. отдать программисту
Эдакое, горизонтальное масштабирование в бизнесе.

rmuslimov 20:46:12

плюс, если программист который делает все встал, не с той ноги - с ним же еще договорится надо. особенно это проблемно для малого бизнеса

rmuslimov 20:46:42

это наверное все надо было писать в какой нибудь непрограммерский чат :simple_smile:

rm 21:09:27

все в порядке, это мы css в джаваскрипте обсуждаем

nicola 21:54:40

Думаю тут тенденция как с девопс, закончится фронтенд и дизайн программистами ;)

nicola 22:02:37

Давайте встречу на следующий понедельник. Нужна тема

nicola 22:03:18

@asolovyov: давай тебя на hangout попытаем?

asolovyov 22:03:56

в следующий понедельник? в принципе можно

nicola 22:04:01

ага

rmuslimov 22:05:25

отличная идея, +1 !

asolovyov 22:09:14

ок, deal :simple_smile: надо только не забыть :smile:

abtv 22:26:49

Я могу напомнить, давно хотел послушать о твоём опыте :simple_smile:

asolovyov 22:55:47

да, я себе сча напоминание какое-то поставлю :simple_smile: