
Stepan
16.09.2017
11:13:04
Покажи конфиг

Aleksey
16.09.2017
11:15:42

Slava
16.09.2017
11:16:06
когда будет релиз 16?

Google

Aleksey
16.09.2017
11:17:13
Как нормально подключить можно в SSR?)

Дмитрий
16.09.2017
11:18:18
Уже последний RC

Cenator
16.09.2017
11:19:13

Slava
16.09.2017
11:19:30
Третяк(на ОдессаЖС) обещал болшое счастье, не могу дождаться :)

Petr
16.09.2017
11:30:37

Aleksey
16.09.2017
11:32:17

Petr
16.09.2017
11:35:03
аа, у тебя css модули, тогда этот вариант не подойдёт)

Aleksey
16.09.2017
11:43:15
может отказаться от этого ssr...

Stepan
16.09.2017
11:57:43
И положить в <style>

Cenator
16.09.2017
12:00:05

Google

Сергей
16.09.2017
12:02:45

Aleksey
16.09.2017
12:03:48


Vasiliy
16.09.2017
12:50:18
хочу поговорить за immutablejs, хоть это тема уже и обсасывалась 100500 раз
вот вроде норм посты, из последних, которые читал https://medium.com/@dtinth/immutable-js-persistent-data-structures-and-structural-sharing-6d163fbd73d2
http://jlongster.com/Using-Immutable-Data-Structures-in-JavaScript
https://medium.com/@AlexFaunt/immutablejs-worth-the-price-66391b8742d4
но я чего-то все еще сомневаюсь нужен ли он мне и есть ли сильный профит
т.е.
печально, что это не встроено в язык
и обычные структуры данных не так работают
– приходится туда-сюда конвертить.
и нужно помнить, что если писать toJs то теряется смысл structural sharing и сразу прикинуть те места, где всё таки придется писать toJs.
и еще всякие вещи типа https://github.com/gajus/redux-immutable
а seamless-immutable – хз вообще зачем сделали :)
кстати, я не знаю как это будет работать с редаксом если честно и как это отражается на работе GC.
вообще интересно как отразится использование immutablejs на работе сборщика мусора.
в том другом посте написано просто "All updates return new values, but internally structures are shared to drastically reduce memory usage (and GC thrashing). ", но почему это так? что именно приводит к минимизации накладных расходов на сборку мусора, кто это проверял и где можно посмотреть какие-то результаты / бенчмарки?
с immutablejs, насколько я понимаю, за счет того, что это персистентные структуры данных их дешево сравнивать "по значению" (is, equals), т.е. за счет этого he makes reconciliation faster вообще, но насчет GC, памяти (structural sharing, https://en.wikipedia.org/wiki/Trie) и производительности я не знаю дает ли это какой-то ощутимый выигрыш, надо проверять
очень много вопросов без ответов


Nikita
16.09.2017
12:53:57
Разобрался С:


Дмитрий
16.09.2017
13:07:45
хочу поговорить за immutablejs, хоть это тема уже и обсасывалась 100500 раз
вот вроде норм посты, из последних, которые читал https://medium.com/@dtinth/immutable-js-persistent-data-structures-and-structural-sharing-6d163fbd73d2
http://jlongster.com/Using-Immutable-Data-Structures-in-JavaScript
https://medium.com/@AlexFaunt/immutablejs-worth-the-price-66391b8742d4
но я чего-то все еще сомневаюсь нужен ли он мне и есть ли сильный профит
т.е.
печально, что это не встроено в язык
и обычные структуры данных не так работают
– приходится туда-сюда конвертить.
и нужно помнить, что если писать toJs то теряется смысл structural sharing и сразу прикинуть те места, где всё таки придется писать toJs.
и еще всякие вещи типа https://github.com/gajus/redux-immutable
а seamless-immutable – хз вообще зачем сделали :)
кстати, я не знаю как это будет работать с редаксом если честно и как это отражается на работе GC.
вообще интересно как отразится использование immutablejs на работе сборщика мусора.
в том другом посте написано просто "All updates return new values, but internally structures are shared to drastically reduce memory usage (and GC thrashing). ", но почему это так? что именно приводит к минимизации накладных расходов на сборку мусора, кто это проверял и где можно посмотреть какие-то результаты / бенчмарки?
с immutablejs, насколько я понимаю, за счет того, что это персистентные структуры данных их дешево сравнивать "по значению" (is, equals), т.е. за счет этого he makes reconciliation faster вообще, но насчет GC, памяти (structural sharing, https://en.wikipedia.org/wiki/Trie) и производительности я не знаю дает ли это какой-то ощутимый выигрыш, надо проверять
очень много вопросов без ответов
toJs не нужен
Можно разделить извлечение данных (мемоизированные линзы) и их обновление — стандартные методы Immutable
По поводу данных в языке не вижу ничего криминального, они не декларируются как иммутабельные
По поводу производительности — выигрыш иммутабл растёт с ростом объёма данных (ничего странного, это просто продвинутая математика)
Если у тебя три фетча в минуту — то лучше, удобнее и эффективнее обычные структуры жс
У меня в районе пятидесяти экшнов в секунду и обычные структуры начинают мешать и тормозить
Я долго сопротивлялся внедрению иммутабл, всё же он жирный ппц, но в один момент смирился с тем что с определенной стадии его плюсы перевешивают)


Vasiliy
16.09.2017
13:28:33
По поводу данных в языке не вижу ничего криминального, они не декларируются как иммутабельные
сорри, не очень понял, я имел ввиду, например, по сравнению с clojure https://clojure.org/reference/data_structures это не встроено в сам язык и проходится с этим бороться, ковертируя их туда-сюда
т.е. если бы Array, Map, etc были персистентыми по-умолчанию (на самом деле, я понмаю, что это абсурд в js)
https://dl.dropboxusercontent.com/s/xefftgnybucpfj0/2017-09-16%20at%2016.27.png

Denis
16.09.2017
13:28:51

Дмитрий
16.09.2017
13:30:45
Ой, я не проверял, интересный вопрос.
Но у них данных много, всё равно какой-то бойлерплейт в таком духе так и так появится

Vasiliy
16.09.2017
13:33:43

Дмитрий
16.09.2017
13:34:44
сорри, не очень понял, я имел ввиду, например, по сравнению с clojure https://clojure.org/reference/data_structures это не встроено в сам язык и проходится с этим бороться, ковертируя их туда-сюда
т.е. если бы Array, Map, etc были персистентыми по-умолчанию (на самом деле, я понмаю, что это абсурд в js)
Я на самом деле рад что это не так. Кложура - opionated и может себе это позволить. Жс работает на миллиардах сайтов и tc39 учитывает интересы всех, умудряясь ничего не ломать уже десятилетие

Stepan
16.09.2017
13:34:59

andretshurotshka?❄️кде
16.09.2017
13:35:31

kana
16.09.2017
13:35:59
Ну имхо он не может быть не заметен. Замена O(n) на O(log n) при n больше хотя бы тысячи уже очень сильно скажется

Google

Vasiliy
16.09.2017
13:37:27
ну да, теоретически это понятно, я представляю как это работает и почему именно так, просто интересен практический опыт и мнение

kana
16.09.2017
13:40:28
Я бы хотел симлес использовать

Дмитрий
16.09.2017
13:40:36
Hash trie

kana
16.09.2017
13:41:57
seamless-immutable, который дает тот же интерефейс, что и стандартные типы

Vasiliy
16.09.2017
13:43:06
он же медленный и у него нет преимуществ перед immutablejs

kana
16.09.2017
13:45:02
Основной профит от иммутабельности для себя я вижу в простоте использования и чтения кода. Понимать код с мутациями сложнее. На данный момент я использую обычные спреды и конкаты, что медленно, seamless еще медленнее?

Дмитрий
16.09.2017
13:45:06

Vasiliy
16.09.2017
13:45:54
там нет вроде structural sharing вообще
https://medium.com/@ckoster22/seamless-immutable-an-alternative-to-immutablejs-12795d6bf577
http://jlongster.com/Using-Immutable-Data-Structures-in-JavaScript (h seamless-immutable)

Дмитрий
16.09.2017
13:46:08

Bogdan
16.09.2017
13:49:15
как получить доступ к стору так, чтобы приконекченный компонент не слушал изменения?

kana
16.09.2017
13:50:11
Из контекста достать и подписаться самому

Дмитрий
16.09.2017
13:50:30

Vasiliy
16.09.2017
13:56:02
+
"не слушал изменения" наталкивает на эти мысли

Bogdan
16.09.2017
14:01:18
мне нужно задиспатчить action, для которого нужны данные из стора. Если конкретно, то это текущий viewport карты. Я его использую, чтобы доставить сразу готовые данные в стор, а не делать еще какие-то операции в редьюсере. И об изменении этого viewport'а компоненту не нужно знать.

kana
16.09.2017
14:02:35
redux-saga, redux-thunk, хотя они оба не походят)
Но dispatch можно в компонент отдать, хоть мне это не нравится. dispatch автоматически передается как пропс, если не передать mapDispatch

Bogdan
16.09.2017
14:07:17
наверное лучше брать viewport уже в редьюсере

Котяй Негодяй
16.09.2017
14:07:34

Google

Котяй Негодяй
16.09.2017
14:07:49
Компонент не должен знать ни о каком таком dispatch.

Nikita
16.09.2017
14:08:49
Ребят привет можете объяснить эту запись ,впервые такое в js вижу handleItemClick = (child: Element<*>) => (event: SyntheticMouseEvent<>)

kana
16.09.2017
14:09:47
Редьюсеры простые и ничего не знают про мир

FantoM
16.09.2017
14:10:09
Хотя хз насчет тайпскрипта

Nikita
16.09.2017
14:10:39

Bogdan
16.09.2017
14:13:02
Редьюсеры простые и ничего не знают про мир
у меня добавляется инфа про точку на карте, которая сейчас в центре экрана. Позиция в центре экрана как раз трекается в сторе. Редусер не получает ничего кроме инфы из экшна и стора

andretshurotshka?❄️кде
16.09.2017
14:14:04

Nikita
16.09.2017
14:14:52
это флоу
можно вкратце ,что это запись делает?

andretshurotshka?❄️кде
16.09.2017
14:15:38
типы задает

Nikita
16.09.2017
14:18:11

andretshurotshka?❄️кде
16.09.2017
14:18:30
не сгенерированный, flow.org

Vasiliy
16.09.2017
14:22:45
не знаю насчет генерации, наверное имеется ввиду вывод типов, но типы обычно пишет человек
а, это не generated types, a _generic_ types, т.е. "обобщенные типы", в простонародии – дженерики)

Nikita
16.09.2017
14:34:25
Удалил свою тупость ,спасибо

Vasiliy
16.09.2017
14:36:02
нормально, в го вообще их нет, например
https://golang.org/doc/faq#generics
https://github.com/golang/go/issues/15292
https://appliedgo.net/generics/
https://github.com/cheekybits/genny
http://classicprogrammerpaintings.com/post/144854447139/go-programmer-claims-he-doesnt-need-generics

KDeveloper ??
16.09.2017
14:48:41
а кто-нибудь знает конфиг для eslint по типу airbnb, но с новым eslint-plugin-jsx-a11y и eslint

Google

Сергей
16.09.2017
14:50:24

KDeveloper ??
16.09.2017
14:50:38
Спасибо!

Nikita
16.09.2017
16:50:16
Привет ребятки,можете подсказать почему при клике на option не вызывается handleItemClick ?
https://gist.github.com/minaev-git/b11db37d23ae4afe83378c90fdb7ad8b

kana
16.09.2017
16:53:19
Ты понимаешь, что ты создаешь новый компонент при каждом рендере?
Такого я еще никогда не видел

Stepan
16.09.2017
16:55:24
Если по теме, то
return(() => {
Зачем функцию вернул?

kana
16.09.2017
16:57:50
Такая концентрация странных решений на один гист, что я до сих пор в ахуе

Stepan
16.09.2017
16:59:16