Fork me on GitHub
#clojure-russia
<
2015-09-17
>
niquola09:09:01

react все больше осознает свою функциональную природу - https://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html#stateless-function-components

dottedmag09:09:54

Ух ты, интересно.

prepor11:09:33

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

asolovyov11:09:44

@prepor: ты про (a, b) => { a } ?

prepor11:09:11

@asolovyov: ага. ребята заигрались как-то...

asolovyov11:09:21

так а чо?

asolovyov11:09:28

по-моему норм, убрали слово function и супер

asolovyov11:09:01

как бы, чего и нужно было simple_smile

prepor11:09:12

надо еще {} убрать

prepor11:09:17

тоже очевидно лишние же

asolovyov11:09:51

ну ad absurdum это ок, но целом тебе просто не нравится, что теперь есть два варианта вместо одного?

prepor11:09:41

мне не нравится то что ребята начали изобретать новый язык для какого-то легкого синтаксического сахара

asolovyov11:09:08

ну он не совсем лëгкий, он же относительно this себя иначе ведëт

prepor11:09:59

ТЕМ БОЛЕЕ!

dottedmag11:09:13

Количество слов function в javascript-программах зашкаливает.

dottedmag11:09:20

Так что такое сокращение - это хорошо.

prepor11:09:09

{} тоже

prepor11:09:22

и скобочек еще многовато имха

asolovyov11:09:02

ага, но пох на жс

asolovyov11:09:10

кто-нить пользуется каким-то роутингом? simple_smile

asolovyov11:09:17

или писать самому надо?

prepor11:09:13

я pedestal-овским

prepor11:09:26

(если ты про это таки)

asolovyov11:09:29

не, я в смысле для clojurescript'а

asolovyov11:09:35

что-то я совсем забыл контекст выгрузить simple_smile

asolovyov11:09:52

я вот на pushy смотрю, а они там предлагают три варианта - secretary, bidi и silk

asolovyov11:09:56

и мне ни один не нравится

prepor11:09:30

ну значит пиши свой, что ж делать

asolovyov11:09:40

договорились %)

konukhov12:09:46

niquola еще своим роутером хвастался https://github.com/niquola/route-map

konukhov12:09:03

а чем secretary не нравится?

asolovyov12:09:51

секретари самый ужасный

asolovyov12:09:57

у них макрос на каждый урл

asolovyov12:09:15

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

asolovyov12:09:57

в route-map GET/POST, откуда у меня такое, я ж на фронте

prepor13:09:48

@asolovyov: я делал как то так: (defroute offers "/offers" [] (assoc-state [:page] [:offers]))

prepor13:09:00

а в компоненте уже диспатчился по стейту

prepor13:09:40

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

dottedmag13:09:23

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

asolovyov13:09:52

@dottedmag: а шо делать?

dottedmag13:09:06

Как @prepor советует - делать URL частью стейта.

asolovyov13:09:11

не, ну блин, один хер ваще-то

dottedmag13:09:08

Не. Так ты развязываешь state и URL, и компоненты у тебя становятся менее привязанными к конкретной структуре урлов.

a.espolov13:09:26

Как @prepor советует - делать URL частью стейта.

asolovyov13:09:50

ну один хрен, я могу положить весь урл в стейт

asolovyov13:09:59

что я и собирался сделать

asolovyov13:09:03

и по нему уже диспатчиться

asolovyov13:09:19

вопрос, где я буду процессить урл - перед тем, как положить, или после - нерелевантен

a.espolov13:09:36

@asolovyov: хорошо, а что будет если урлу схешем открыть в новой вкладке? будет ли у клиента такая урла для перехода?

prepor13:09:52

ну вот секретари можешь пропарсить урл перед тем как положить )

dottedmag13:09:02

Попарсить может что угодно, это неважно.

a.espolov13:09:02

bidi + pushy тоже

asolovyov13:09:04

@a.espolov: а какая разница?

asolovyov13:09:10

@prepor: мне не нравится этот подход

a.espolov13:09:10

большая

asolovyov13:09:25

@a.espolov: типа, если я буду парсить заранее, то что-то лучше будет?

a.espolov13:09:37

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

a.espolov13:09:05

каждый раз когда приложение будет загружатся

a.espolov13:09:30

секретари + goog.History в этом плане закрывают вопрос

asolovyov13:09:36

блин, чувак

asolovyov13:09:42

парсить я буду до или после - ваще пох

asolovyov13:09:48

если сделать плохо - то тоже пох, где парсить

asolovyov13:09:59

твои консëрны ортогональны проблеме

a.espolov13:09:15

@asolovyov: поподробней про свое решение расскажешь?

a.espolov13:09:52

я правильно понял, что ты хочешь прокидывать в стейт компонента урл и соответственно на основе маршрута внутри компонента определять как отрендерить компонент?

asolovyov13:09:39

в стейт приложения

a.espolov13:09:09

с одной стороны стремно, когда компонетов дохера и маршрутов то же

a.espolov13:09:24

с другой будет работать и придумывать ни чего не надо

asolovyov14:09:12

так серьëзно, а какая разница? Функция-диспатчилка будет либо до, либо после, но разницы реально никакой

ul14:09:05

@asolovyov: я пользую bidi, он наименее ужасный из всех

ul14:09:41

пару вспомогательных функий сверху, и вполне можно пользоваться

ul14:09:15

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

asolovyov14:09:32

хм, ок, гляну на него внимательнее всë-таки

asolovyov14:09:49

я когда-то пытался его на сервере заюзать, и потом запутался в роутах :))

ul14:09:26

а в каком смысле запутался?

ul14:09:35

может я сталкивался и у меня есть костыль)

prepor14:09:46

ну я тоже всегда путаюсь в биди, какой то шизанутый там “синтаксис” ) но есть формальное описание, это спасает )

rm16:09:00

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

rm18:09:27

о кстати

rm18:09:41

или некстати

rm18:09:49

а как вы делаете пагинацию?

rm18:09:04

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

asolovyov18:09:08

так и есть

asolovyov18:09:25

но я не делаю пагинацию, поэтому мне хорошо simple_smile

a.espolov18:09:13

@rm: почему проще?

a.espolov18:09:19

там же все равно тоже самое будет

rm18:09:21

@asolovyov: как так?

a.espolov18:09:47

суть пагинатора работать с набором данных который соответствует текущему стейту(например), а как он будет отрисован как разница?

asolovyov18:09:09

@rm: ну ото такие требования

rm18:09:30

@a.espolov: ну не будешь ты на клиент 5000000 записей совать, например.

asolovyov18:09:31

@a.espolov: проще чем что?

asolovyov18:09:06

@rm: ну я в принципе буду пихать шо скажут, но сейчас у меня вообще ужас нереальный, а буду заполнять по мере скролла, наверное

a.espolov18:09:24

@asolovyov: там чуть выше

asolovyov18:09:27

@rm: https://modnakasta.ua/campaign/s-8194-keddo-betsy-elisabeth/f/all/ - зацени вот, никакой паджинации, бизнес хотит

asolovyov18:09:15

@a.espolov: не вижу альтернатив описанных, ггг

asolovyov18:09:24

@rm я сделал так же, когда увидел первый раз 😃

asolovyov18:09:48

оно еще и тормозит, джанга рендерит этот ужас 500-700 мс %)

a.espolov18:09:04

@asolovyov: infinityscroll не пробовал прикрутить?

asolovyov18:09:10

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

asolovyov18:09:25

@a.espolov: ну в текущем варианте бекенда прям очень неудобно это будет делать

asolovyov18:09:34

но так и будет, канеш, просто руки не дошли еще

asolovyov18:09:47

знаешь, типа, пока работает - и ок, другие-то части иногда не работают simple_smile

a.espolov18:09:58

знакомо

a.espolov18:09:02

до боли

asolovyov18:09:13

ничо, мы прям на след неделе уже этим начинаем заниматься

asolovyov18:09:20

не прошло и полгода! %))

rm18:09:31

хехе, моя история

asolovyov18:09:36

(прошло на самом деле, но всë остальное важнее было, ггг)

niquola20:09:45

@asolovyov: кстати хорошая идея избавиться от method - я как раз начал его в cljs использовать - зарефакторю - опционально поместив его в конец пути последним элементом