Fork me on GitHub
#clojure-russia
<
2016-06-29
>
maxp02:06:10

прям рекурсивыные макросы кругос с прн внутри! 🙂

maxp02:06:48

а я на самом деле вспоминал, как condp :>> работает

maxp02:06:04

@nicola что за супервизор такой?

niquola05:06:00

@maxp - HA Postgres

prepor07:06:22

@maxp: prn в док-строчке

delaguardo10:06:40

немного оффтопа - http://monkberry.js.org/ коллега сделал действительно сильную либу для клиентского рендеринга, посмотрите если кому в JS кажется что реакт переусложнен

delaguardo10:06:01

ну и советую в исходники заглянуть, много интересных решений

prepor11:06:24

@delaguardo: пиздос какой-то )

delaguardo11:06:30

что конкретно? коллега через стол сидит, могу ему передать )

seryh11:06:06

@delaguardo: вы же сами в aviasales, react используете, планируете съезжать?

delaguardo11:06:56

ну реакт у нас только в одном проекте есть, пока там так и останется, но все остальные перезжают

delaguardo11:06:14

один уже перевели - http://travelpayouts.com

delaguardo11:06:18

пользуются два месяца - AB в котором просто был заменен движок показал прирост в +9-10% по нужным метрикам

delaguardo11:06:11

все из-за ускорения загрузки и рендеринга

savelichalex11:06:18

@delaguardo: так а где бенчмарки то?

delaguardo11:06:18

дока по перформансу еще не доделана говорит, будет скоро

niquola11:06:37

На мобилке не читается хэлп

asolovyov11:06:15

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

asolovyov11:06:26

monkberry это не реакту замена, а бэкбону

savelichalex11:06:46

по факту таких «убийц» реакта дофига уже было и все забывали про то, что у ректа самое клевое это апи и коммьюнити. Я и сам писал какое то время с https://github.com/Matt-Esch/virtual-dom потому что он быстрее, но все же то что я уже озвучил это критично

prepor11:06:15

> что конкретно? коллега через стол сидит, могу ему передать ) ну что это вообще? очередной уебанский темплейтер? + какой-то странный обзервер над данными и пробрасыванием их в дом?

prepor11:06:24

нафиг это надо?

prepor11:06:41

> что у ректа самое клевое это апи и коммьюнити. у реакт пиздец а не коммунити и апи тоже )

savelichalex11:06:06

@prepor: и чем тебе их апи не угодило?)

prepor11:06:45

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

savelichalex11:06:56

мне наоборот lifecycle очень нравится. Что ты видел лучше? В том же ios так же используют их потому что это удобно. А то что можно сделать быстро я сомневаюсь, только прикинь сколько людей контрибьютили туда и исправили множества багов, о которых в самом начале и не подозревали.

prepor11:06:20

@delaguardo: а тем, кому кажется, что реакт переусложнен, стоит посмотреть на кложускрипт, в частности, автору этой либки, кмк 😉

prepor11:06:25

@savelichalex: ага, исправляя баги в jsx-парсере и новом синтаксисе объявления коллбэков? )

savelichalex11:06:15

ну это уже проблемы самого js-а что там нельзя так как в cljs к примеру)

prepor11:06:59

реакт збс, но вот эти все рассказы про "коммунити" это как-то так странно, особенно учитывая, что реакт совсем недавно сам по себе был маргинальным. проблема этого monkberry вовсе не сравнительно большом коммунити реакта

savelichalex11:06:06

ну тут я пожалуй соглашусь)

delaguardo11:06:36

@asolovyov: бэкбон это все-таки фреймворк и как раз его сравнивать с библиотекой-темплейтером для UI некорректно, imho, поправьте если я не прав (с backbone почти не довелось поработать)

delaguardo12:06:37

@savelichalex: я не говорил "очередной убийца react" ) я говорил что задачи решает те же и при этом не имеет того количества странного оверхеда которые есть в реакте и который сильно замедляет рендеринг

delaguardo12:06:52

@prepor: смотрит ) и причем весьма активно, я время от времени рассказываю про интересные вещи из clojure

savelichalex12:06:53

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

delaguardo12:06:34

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

delaguardo12:06:42

все равно все зависит от задачи - например (для того же travelpayouts) нужно было что бы итоговый бандл с js не весил больше 10Kb, это все таки виджеты для встраивания на сторонних сайтах и для этой задачи react совсем не подходит) +50Kb библиотечного кода убивает весь профит от таких виджетов

delaguardo12:06:45

сейчас он весит, если я правильно помню, что-то около 7-8Kb, включая библиотеку, всю верстку и стили

seryh12:06:33

у меня либа с виджетами для встраивания на сторонние сайты весит 600кб =Р

seryh12:06:12

для партнеров попроще, норм, даже не смотрят на размер

seryh12:06:18

крутые ребята API используют

seryh12:06:23

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

delaguardo12:06:39

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

misha13:06:25

@delaguardo: а так разве имеет вообще смысл делать в реакте? https://github.com/monkberry/benchmark/blob/gh-pages/ticket-rendering/template.jsx#L60

misha13:06:46

{data.proposals.map(proposal =>
              <a href={proposal.deeplink} target="_blank"
...

misha13:06:48

"не выносить 20 строк тагов в отдельный компонент со своим рендером"

misha13:06:30

на деле я не знаю, насколько вынести – медленнее/быстрее, чем .map()

misha13:06:41

но выглядит странно

delaguardo13:06:42

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

misha13:06:27

ой, тут и 150 строк, из которых 140 - во вложенном .map() есть

misha13:06:11

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

misha13:06:29

@delaguardo: а эта либа умеет компоновать темплейты? в смысле внутри одного т использовать другой

delaguardo13:06:05

умеет, реализовано как CustomTags

delaguardo13:06:39

https://facebook.github.io/react/docs/reusable-components.html#stateless-functions сам реакт рекомендует использовать такой подход

misha13:06:05

это не совсем то же самое, кмк

maxp13:06:51

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

misha13:06:53

они же не рекомендуют анонимно в мап передавать

delaguardo13:06:23

@maxp: я так понимаю пахнет холиваром)) а ты что предпочитаешь?

misha13:06:51

@maxp, а куда уходить?

delaguardo13:06:59

@misha: с точки зрения JS это одно и то же

maxp13:06:03

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

delaguardo13:06:42

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

maxp13:06:42

но в явот недавно товарищу объявснял, что такое хтмл и почему это на самом деле просто дерево

maxp13:06:10

и можно с ним работать как с деревом, а не как со странно-размеченным текстом

maxp13:06:34

конечно, при условмм, что весь хтмл контролируем и под руками.

maxp13:06:56

я так-то порядком пописал и на django и на jinja и на jade

maxp13:06:03

но как бы вопрос остается...

delaguardo13:06:05

в monkberry сорс мапы заведены для контроля над html, как раз что бы на этапе компиляции шаблонов получать ошибки о невалидном html

maxp13:06:44

вопрос даже более философский

delaguardo13:06:00

так вопрос скорее без ответа) это вкусовшина - какой синтаксис использовать)

maxp13:06:29

вот у нас есть hiccup например, и все что на него похоже, и есть enlive какой-нибудь

maxp13:06:06

так почему разрабы предпочитают эти гребаные угловые скобочки с их 40-летним синтаксисом

delaguardo14:06:53

скобочки - это такой олдскул)) First appeared 1958; 58 years ago (c) Wiki Lisp

delaguardo14:06:00

сори за сарказм

delaguardo14:06:15

не смог удержаться

maxp14:06:33

я не про круглые, а про сгмл 🙂

maxp14:06:42

тому лет 40 с чем-то

maxp14:06:51

ну то есть вопрос как бы есть

maxp14:06:03

вот в каждом языке есть что-то похожее на for

maxp14:06:20

но первый же прмер какого-то темплейтера в хтмле

maxp14:06:57

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

maxp14:06:42

jsx - то вот охрененный пример

maxp14:06:41

эх.... чёта меня на лирику потянуло... 🙂

delaguardo14:06:10

в jsx по факту вообще нет синтаксиса для for, if и тд

delaguardo14:06:16

а так да ) лирика)

maxp14:06:59

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

maxp14:06:57

и мотив был ровно тако же, когда еще пхп называлось php/fi

niquola15:06:40

Злые вы ;)

rm18:06:48

ничоси у вас тут движуха. Неделю не был -- уже все не любят реакт

rm18:06:07

не любите угловые скобочки -- берите реагент же

rm18:06:58

или ом или рум или все что угодно с hiccup-подобным обмазыванием компонентов