Clojurians
#clojure-russia
<
2016-01-11
>

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

turtle00:01:22

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

rm05:01:36

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

rm05:01:46

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

rm05:01:55

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

prepor07:01:16

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

delaguardo07:01:18

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

rm07:01:37

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

artemyarulin07:01:52

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

artemyarulin08:01:35

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

turtle08:01:54

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

artemyarulin08:01:06

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

turtle08:01:20

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

turtle08:01:42

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

turtle08:01:23

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

turtle08:01:00

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

turtle08:01:17

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

lowl4tency08:01:02

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

turtle11:01:46

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

a.espolov15:01:06

коллеги

a.espolov15:01:41

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

rm15:01:01

map-indexed

ul15:01:21

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

a.espolov15:01:51

ох ты ж

prepor15:01:18

map-indexed есть в core

prepor15:01:27

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

a.espolov15:01:50

вроде пашет

a.espolov15:01:02

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

a.espolov15:01:57

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

linuccio15:01:45

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

linuccio15:01:14

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

nicola16:01: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)])]])

nicola16:01:43

как-то так

delaguardo16:01:56

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

linuccio16:01:26

Это реагент?

larhat16:01:41

job security through code obscurity

abtv16:01:59

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

artemyarulin16:01:59

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

linuccio16:01:34

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

delaguardo16:01:56

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

linuccio16:01:02

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

abtv16:01:40

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

abtv16:01:26

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

rm17:01:19

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

rm17:01:26

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

abtv17:01:59

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

abtv17:01:53

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

nicola17:01:08

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

nicola17:01:27

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

abtv17:01:35

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

nicola17:01:36

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

nicola17:01:44

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

abtv17:01:49

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

nicola17:01:18

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

nicola17:01:50

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

rmuslimov17:01:26

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

nicola17:01:29

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

nicola17:01:29

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

nicola17:01:43

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

nicola17:01:45

:simple_smile:

rmuslimov17:01:09

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

nicola17:01:36

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

abtv17:01:31

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

rm17:01:45

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

rm17:01:21

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

abtv17:01:40

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

abtv17:01:49

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

rm17:01:12

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

rm17:01:33

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

abtv17:01:11

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

abtv17:01:56

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

rm17:01:40

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

abtv17:01:38

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

rm17:01:17

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

rm17:01:07

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

abtv17:01:42

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

abtv17:01:00

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

a.espolov17:01:00

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

rm17:01:06

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

a.espolov17:01:26

@rm: push&pull?

a.espolov17:01:03

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

a.espolov17:01:32

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

rm17:01:20

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

abtv17:01:39

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

rmuslimov18:01:26

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

rmuslimov18:01:12

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

rmuslimov18:01:42

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

rm19:01:27

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

nicola19:01:40

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

nicola20:01:37

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

nicola20:01:18

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

asolovyov20:01:56

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

rmuslimov20:01:25

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

asolovyov20:01:14

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

abtv20:01:49

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

asolovyov20:01:47

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

asolovyov21:01:25

@nicola: а во сколько все это начинается?

abtv21:01:22

В 22.00 по Москве

a.espolov21:01:48

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

a.espolov21:01:03

вот я уже как 2 месяц юзаю material-ui

a.espolov21:01:03

и по мне так проще схема когда мухи отдельно слоны отдельно

a.espolov21:01:22

html-ный код порой раздувается до безобразия(