
Ҫѐҏӗѫӑ
18.04.2016
17:46:25
но не знаю насколько продвинулся

Artem
18.04.2016
17:46:29
basic-streams?

Ҫѐҏӗѫӑ
18.04.2016
17:46:35
да
ну и он писал что придумал как еще ускорить кефир, но смысла нет — получится most

Google

Dmitrii
18.04.2016
18:07:08
кто нибудь имел дело с параллелелизацией JSON.parse JSON.stringify в node.js? нужно быстро спарсить\сохранить ~30mb данных. Структура одинаковая. Как проще по тредам это разделить? какой IPC проще реализовать?

Denis
18.04.2016
18:11:28
Golang? :)

Dmitrii
18.04.2016
18:16:27
ну такто любой язык с тредами подойдет. только как это все из node.js достать? :)

Denis
18.04.2016
18:18:35
@DenisElistratov

Denis
18.04.2016
18:20:46

Dmitrii
18.04.2016
18:21:17
ну мы одну и туже задачу решаем :)
с учетом того что данные в правильную форму сериализуем, я думал о правильной параллелизации
но так как тут время меньше секунды, то типичный нодовский подход с кучей процессов не пойдет

Denis
18.04.2016
18:23:09
Тот же transit.js написан поверх JSON.parse. Все кастомные алгоритмы от лукавого, не обгонят хорошо оптимизированный C++ код JSON.parse. Разве что регулярками парсить, и заложиться на простоту структуры, например flat-массив — RegExp в V8 оптимизированы едва ли не лучше чем JSON.parse...

Dmitrii
18.04.2016
18:24:39
не. ну с алгоритмами понятное дело тягаться не вариант :)
я больше думаю в сторону разделения этого 30mb файла на 100 кусков и сборки их отдельно
может получится от 500 до 200~ снизить
но не знаю в какую сторону идти. сейчас пишу jruby скрипт который из node вызывается

Google

trump ? trump ? hillary
18.04.2016
18:26:36
.in vs .biz vs .co.uk vs .org.uk vs .org vs .com vs .net vs .azurewebsites.net

Антон
18.04.2016
18:28:10
Если дочерним процессом вызвать

Ҫѐҏӗѫӑ
18.04.2016
18:32:55
была хорошая либа для этого, пытаюсь вспомнить название
http://oboejs.com/

Вадим
18.04.2016
18:34:39
HTTP авторизация

Ҫѐҏӗѫӑ
18.04.2016
18:35:12
только что-то не обновлялась давно

Сева
18.04.2016
19:36:11
Еще есть какая то либа со стримящим парсером json

Denis
19.04.2016
02:04:18
Ага, Relay ?

Dmitrii
19.04.2016
02:07:59
написал FFI модуль на Rust. не спасло... оверхед большой на гоняние данных из нэйтива в node :)

Anton
19.04.2016
07:25:02
Привет
Как красивее всего удалит свойство из объекта по ключу?

anoru
19.04.2016
07:26:36
delete?

Andrey
19.04.2016
07:26:37
var obj = {
val: 1
};
obj.val = undefined;

anoru
19.04.2016
07:26:58
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/delete

Renat
19.04.2016
07:27:03
я бы не сказал что это удаление

Andrey
19.04.2016
07:27:09
delete тормозной
я бы показал вам jsperf, но он не работает

anoru
19.04.2016
07:27:42
delete object.key;
красивее не найти)

Google

anoru
19.04.2016
07:28:03
ну, я не думаю, что ему надо удалить 20 тысяч ключей
за секунду)

Anton
19.04.2016
07:29:34
Спасибо. В поисках красоты совсем забыл про delete

Dmitry
19.04.2016
07:31:47
https://jsbench.github.io/#78e5b999c39a11837e32b0635de581cc
ну да, экономия такая никому не нужна)

Renat
19.04.2016
07:35:45
Вы забываете, что obj.val = undefined не удаляет свойство. Оно остается итерируемым. Просто присваиваете значение undefined

Anton
19.04.2016
07:35:53
Добавляю элементы html после загрузки страницы. Как повесить обработчик на вновь добавленные элементы?

Renat
19.04.2016
07:35:55
Потом не споткнитесь только
Наверное только путем отписки и повторной подписки

Alexander
19.04.2016
07:37:59

Anton
19.04.2016
07:51:57
Получается можно повесить на body и проверять e.target на className, к примеру

Anton
19.04.2016
07:57:44
И все обработчики красиво в одном месте без addEventListener

Artem
19.04.2016
07:58:04
так реакт и делает напрмер

Renat
19.04.2016
07:59:45
круто

Anton
19.04.2016
08:00:06
Формирую так таблицу. Может подскажите как по уму?
Сори, что тут React нет )))
Возможно стоит использовать jsx в отрыве от реакта?

Renat
19.04.2016
08:02:04
если такого немного, то я предпочитаю не стрелять из пушки по воробьям)

Alexander
19.04.2016
08:02:51

Google

Dmitry
19.04.2016
08:02:51
и всё летит к чертям, когда cart = null =)
почему не заюзать шаблонизатор какой-нибудь простенький хотя бы?

Alexander
19.04.2016
08:03:04

Vladimir
19.04.2016
08:04:31
да норм, отличный способ. Все же если таких мест в коде мало, лучше не тянуть зависимость

Renat
19.04.2016
08:05:41
А то выйдет как тут
https://s3-eu-west-1.amazonaws.com/uploads-eu.hipchat.com/60030/2360982/UXpQe6QH8tyg3W4/IMG_20160418_002334.jpg

Admin
ERROR: S client not available

Anton
19.04.2016
08:07:15

Dmitry
19.04.2016
08:09:46
ну мало ли)

Renat
19.04.2016
08:10:57
Ну там строка ожидается видимо. Можно в try/catch обернуть этот блок с JSON.parse, поскольку заведомо все равно не ясно валидна ли будет строка

Anton
19.04.2016
08:11:15
есть разница как получать localStorage. Если localStorage.getItem('test') будет null, то localStorage['test'] будет уже undefined

Alexander
19.04.2016
08:14:23

Renat
19.04.2016
08:14:48
Ну не всегда это уместно. Если ты понимаешь какой тип ты ожидаешь, то достаточно проверить на тип. Но строка, которая не понятно будет ли json, без try/catch может просто вылететь.

Anton
19.04.2016
08:15:38
Я так понимаю, что если получаешь данные извне, то надо проверить и бросить исключение если что

Renat
19.04.2016
08:17:49
Да, и в идеале, если ты получаешь данные извне и не используешь какой-то библиотеки для этого или даже fetch, то лучше написать свой маленький обработчик ответов, пропускать через него и работать уже с нормальными данными, а не сырыми.
Непонятно просто из кода откуда вообще этот cart прилетает.
Он то сломаться может не только если там null. Что угодно, что не сможет стать на выходе объктом. И тогда JSON.parse бросит исключение, который не перехватывается.

Anton
19.04.2016
08:27:47
Прилетает из localStorage

S
19.04.2016
08:39:23
Знатоки редукса, подскажите, норм ли иметь некоторые компоненты со своим стейтом, типа тултипа?

Google

Artem
19.04.2016
08:40:40
нормально

Andrey
19.04.2016
08:40:46

S
19.04.2016
08:41:59
Ок, спс

Oleg
19.04.2016
08:43:04
Кстати, знатоки redux, кто как решает проблему, когда тебе нужно несколько компонентов одинаковых на странице

Denis
19.04.2016
08:43:17
Я бы натравил eslint, и еще говорят что производительнее джоинить массив, а не конкатенировать строки
Я тут как-то твитил на эту тему:
https://twitter.com/denisizmaylov/status/715266866118266881
Иными словами, сейчас JavaScript слишком быстрый (если мы не берем задачу в реальном времени обрабатывать 25-мегабайтный JSON ;)), чтобы увлекаться такими хаками. Проблема с опытными разработчиками куда острее. Они смогут не понять все эти хаки и будет потеря времени при понимании кода. Плюс его портабельность снижается. Поэтому лучше использовать стандартные (delete, indexOf и тд), пусть VM заботится об оптимизации.

Andrey
19.04.2016
08:43:33

Oleg
19.04.2016
08:44:09
ну у них разные состояния должны быть

Alexander
19.04.2016
08:44:40

Oleg
19.04.2016
08:44:46
хранить в state компонента? а какже тогда единый store с редусерами)
или как-то динамически редусеры создавать... под компонент...

Artem
19.04.2016
08:47:40
если компоненты описывают какой то набор ресурсов, то и хранить массив ресурса, и предоставлять каждой сущности свой компонент

Oleg
19.04.2016
08:48:06
ну к примеру карусель, их несколько на странице
у каждого компонента есть состояния, такие как позиция текущая

Artem
19.04.2016
08:48:40
ну такие вещи лучше в стейте компонента держать

Aleksandr
19.04.2016
08:49:00
если их состояния важны для внешних компонентов, то в сторе, если нет – то в стейте компонента

Denis
19.04.2016
08:49:24

Oleg
19.04.2016
08:49:31
ну а как в сторе лучше хранить тогда