Я бы начал с учебника по комбинаторике... Задача на распределения
Находим все возможные распределения и с помощью различных эвристик подбираем оптимальное
myspace: у меня лично уже давно своя обертка над http написана, а уж над ней написан роутинг, может быть когда то и дойдут руки выложить это все в опенсорс
если для изучения, можно глянуть в сторону koa (по сути тот же express, только с async/await или генераторами ведущими себя как async/await)
при работе на дядю в большинстве случаев тормоза либ решаются покупкой доп железа, так что будет полезно
Так же можно глянуть в сторону sails.js (это порт rails фреймворка с руби на ноду)
P.S. А в случае когда "у нас 10 серваков загибаются, но нам бы хотелось свободно дышать на 5" люди обычно несут монету мне ;)
myspace: express в продакшене не рассматриваю ибо с его тормознутостью на все что он годен - это быстро поднять сервачек для dev с эмуляцией стороннего апи, поэтому и мидлвары к нему так же проходят стороной
Константин Китманов: flux не только для view хорош, но и для бизнес-логики, тому же redux пофиг с чем Вы его будете использовать, но vuex сильно завязан на vue, что кстати тоже усложняет жизнь...
по diff двух состояний сразу понятно, что нужно делать с нужными данными, а у vuex такой diff не возьмешь
приведу жизненный пример, хотим мы в нашем приложении операцию undo, да не просто чтоб 1 раз, а чтоб история была, с redux мы просто откатываем стэйт на предыдущий и все работает, с vuex так не получится
Prototype.js - сломай современные фичи и сделай из своей страницы тормознутое го*но
прям как слоган....
Какой смысл кодировать в b64 текстовые данные?
Когда уже на тостере появится кнопка "не нравится", чтоб минусовать вот такие ответы
mak_ufo: потому что константы имеют область видимости от своего объявления до конца блока в случае switch блок один, объявить константу 2 раза нельзя, но так как код после отклоненного case не выполняется константа не инициализируется Илья Шатохин: это не баг, это особенность языка
hitakiri: ws это не модуль электрона или ноды, его нужно установить с npm
все что работает на ноде, работает и в электроне
кроме того в рендер процессе есть еще и стандартный браузерный клиент WebSocket
Валерий Чупурнов: ну и по самому соединению, если мы не говорим о какой-нибудь деревни "Кукуево", то почти везде сейчас есть 3g, а то и LTE
трафик почти у всех операторов сейчас условно-безлимитный
ну и добавьте сюда, что в современном мире почти всегда есть wi-fi в доме, офисе, кафе и т.д., недавно офигел когда пришлось ехать в городском автобусе (СПб) и поймал бесплатную wi-fi точку от этого автобуса
Валерий Чупурнов: основной оверхед идет на tls handshake, те самые 3-5кб
если клиент заранее знает с каким сервером он будет работать - handshake можно сократить
если мы уже устанавливали tls соединение с этим сервером недавно, то у нас есть tls сессия и мы можем использовать сокращенный handshake
если использовать http1.1 keep-alive (на http/2 он кстати всегда), то можно отправить любое кол-во запросов на одном tls соединении, то есть handshake будет производиться вообще один раз
оверхед на сами данные зависит от типа шифрования (большинство блочных шифров требуют полного блока на вход) и разрядности хэша используемого для подписи пакета и обычно не превышает нескольких байт на пакет
Валерий Чупурнов: при грамотном использовании оверхед можно снизить до ~3кб, но для этого нужно иметь хотя бы базовое представление как работает tls внутри, а не как сейчас модно - подключили либу и для нас магия как она все делает...
Находим все возможные распределения и с помощью различных эвристик подбираем оптимальное