Size: a a a

JavaScript — русскоговорящее сообщество

2019 November 12

S

Saidumarov in JavaScript — русскоговорящее сообщество
Но это и есть часть вопроса
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Saidumarov
не смог ответить друго вопросу по оптимизации nodejs

    Spot the problems in the following Node.js code
    and describe how to fix them. Also, think of a way
    to optimize performance of processing.

async function Question3() {
 const records = await fetchOneMillionRecords();
 
 const results = records.map(record => {
   await record.performLongRunningAction();
 });
 
 return results;
}

Есть кто знает ответ?
Либо параллельно выполняем:
// async/await синтаксис тут и не особо то нужен
const promises = records.map(record =>
   record.performLongRunningAction()
);

return Promise.all(promises);

Либо 'водопадиком':
// а тут async/await пригодится
const result = [];
for (const record of records) {
   result.push(await record.performLongRunningAction());
}
return result;

Первый вариант "нагреет машину" сильно, но не на долго, причем будет не одна большая блокировка, а много (на каждую запись) маленьких блокировок EventLoop.
Второй вариант отдаст результат намного позже, но не так сильно будет напрягать машину.
Эх, как нехватает каких-нибудь "горутин" ) А вообще, обычно такое на архитектурном уровне вывозится делегированием вычислений другим процессам.
источник

S

Saidumarov in JavaScript — русскоговорящее сообщество
👏👏👏👍
источник

S

Saidumarov in JavaScript — русскоговорящее сообщество
А стоит-ли использовать setImmediate для избавление от блокировки?
источник

С

Сергей in JavaScript — русскоговорящее сообщество
Leet 4
Либо параллельно выполняем:
// async/await синтаксис тут и не особо то нужен
const promises = records.map(record =>
   record.performLongRunningAction()
);

return Promise.all(promises);

Либо 'водопадиком':
// а тут async/await пригодится
const result = [];
for (const record of records) {
   result.push(await record.performLongRunningAction());
}
return result;

Первый вариант "нагреет машину" сильно, но не на долго, причем будет не одна большая блокировка, а много (на каждую запись) маленьких блокировок EventLoop.
Второй вариант отдаст результат намного позже, но не так сильно будет напрягать машину.
Эх, как нехватает каких-нибудь "горутин" ) А вообще, обычно такое на архитектурном уровне вывозится делегированием вычислений другим процессам.
ещё, наверное, генератором можно сделать?
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Saidumarov
А стоит-ли использовать setImmediate для избавление от блокировки?
Промисы - микротаски, setImmediate делает задачу макротаской. Думаю стоит.
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Сергей
ещё, наверное, генератором можно сделать?
Нет смысла, для этого есть async/await. EventLoop'у легче от генератора не станет.
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Но вообще, на ноде, которая обслуживает соединения, нельзя делать вообще никакие чуть-сложные вычисления.
источник

VL

V. Lavrinovichs 🇦🇹 in JavaScript — русскоговорящее сообщество
Добрый вечер. Кто чем руководствовался, когда делал выбор между углублением изучения фронтенда  или бэкенда? )
источник

VL

V. Lavrinovichs 🇦🇹 in JavaScript — русскоговорящее сообщество
Что оканчательно вас сподвигло на то или другое? )
источник

S

Sm•ok 😈✔️ in JavaScript — русскоговорящее сообщество
я хотел кушац
источник

L

Lookarious in JavaScript — русскоговорящее сообщество
V. Lavrinovichs 🇦🇹
Добрый вечер. Кто чем руководствовался, когда делал выбор между углублением изучения фронтенда  или бэкенда? )
Я не знаю почему ты всегда спрашиваешь "интересные" вопросы но тебе надо просто писать код а потом ты сам поймёшь что для тебя а что нет. Я начинал как дизайнер потом начали задавать всякие  задачи типо почини что-то в вёрстке а потом понеслось, со временем я чуть чуть выучил бэку (php/codeigniter) вообще не понравилось, вот я и остался с фронтом. В начале надо меньше думать больше писать а потом когда ты уже станишь гиком будешь больше думать и меньше писать)
источник

VL

V. Lavrinovichs 🇦🇹 in JavaScript — русскоговорящее сообщество
Lookarious
Я не знаю почему ты всегда спрашиваешь "интересные" вопросы но тебе надо просто писать код а потом ты сам поймёшь что для тебя а что нет. Я начинал как дизайнер потом начали задавать всякие  задачи типо почини что-то в вёрстке а потом понеслось, со временем я чуть чуть выучил бэку (php/codeigniter) вообще не понравилось, вот я и остался с фронтом. В начале надо меньше думать больше писать а потом когда ты уже станишь гиком будешь больше думать и меньше писать)
Меня интересовало сделать сайт для себя. Выучил html и css, патом понял что нужно еще немного функционала на сайте, начил js изучать, а патом понял что нужно то мне интернет магазин и еще разное (чаты итд). А патом подумал что начну учить фулл-стэк называемый, но в последнее время думается, что не легко обновлять постоянно знания во всех отраслях при фуллстек-е. Вот думаю что делать. И ноду хочу учить, и фронт-энд интересует развивать.
источник

VL

V. Lavrinovichs 🇦🇹 in JavaScript — русскоговорящее сообщество
Может быть фулл-стэк всетаки для меня. Только учить и обновлять постоянно знания всего, не так легко кажеться.
источник

AP

A P in JavaScript — русскоговорящее сообщество
патом
источник

CC

Cecile Cosima Caminades in JavaScript — русскоговорящее сообщество
может русский не его родной язык
источник

L

Lookarious in JavaScript — русскоговорящее сообщество
V. Lavrinovichs 🇦🇹
Может быть фулл-стэк всетаки для меня. Только учить и обновлять постоянно знания всего, не так легко кажеться.
А это невозможно), фулл стеком становится после того как ты выучил одну отрасль до конца иначе ты не будешь гиком ни в том ни в этом
источник

R

Roman in JavaScript — русскоговорящее сообщество
Lookarious
А это невозможно), фулл стеком становится после того как ты выучил одну отрасль до конца иначе ты не будешь гиком ни в том ни в этом
Поддерживаю
источник

R

Roman in JavaScript — русскоговорящее сообщество
Хотя, на рынке труда часто наооборот – туда идут джуны потому, что там з/п побольше :)))
источник

R

Roman in JavaScript — русскоговорящее сообщество
Со старта
источник