worker_threads
— это модуль в Node.js, который позволяет создавать дополнительные потоки для выполнения задач параллельно с основным потоком. Он особенно полезен для вычислительно затратных операций, которые могут блокировать выполнение кода в основном потоке событий.const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
// Главный поток
console.log('Главный поток запущен');
const worker = new Worker(__filename); // Создаем воркер
worker.on('message', (msg) => {
console.log('Результат от воркера:', msg);
});
worker.postMessage('Начать расчет'); // Передаем сообщение воркеру
} else {
// Воркер
parentPort.on('message', (msg) => {
console.log('Сообщение от главного потока:', msg);
// Выполняем тяжелый расчет
const result = Array(1e6).fill(0).reduce((acc, _, i) => acc + i, 0);
parentPort.postMessage(result); // Отправляем результат обратно
});
}
🗣️ В этом примере главный поток создает воркер, который выполняет вычисление суммы чисел, не блокируя основной поток. Это позволяет использовать многопоточность в JavaScript для высоконагруженных операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Бэкэнд-разработчик JavaScript
•
JavaScript, Node.js, React, Angular, RESTful API, PostgreSQL, MongoDB, RabbitMQ, Git•
от 250 000 до 400 000 ₽ | от 3 лет опытаBackend (Node.js) разработчик
•
Node.js, TypeScript, JavaScript, MoleculerJS, PostgreSQL, Unit-тестирование, Git•
Уровень дохода не указан | от 4 лет опытаMiddle+ NodeJS backend developer (Удаленно)
•
Node.js, TypeScript, GraphQL, PostgreSQL, Websockets, Redis, GitLab•
от 2 000 до 4 500 $ | Требуемый опыт не указанPlease open Telegram to view this post
VIEW IN TELEGRAM
Статья исследует, как обеспечить стабильность и доступность сервиса по всему миру. Рассмотрены методы контроля скорости работы сайта и мониторинга проблем маршрутизации и цензуры, выходящие за рамки стандартных аналитических решений.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Создайте приложение на Node.js, которое считывает большой текстовый файл построчно и анализирует количество слов в каждой строке. Приложение должно использовать потоковое чтение (streams), чтобы эффективно обрабатывать большие файлы, не загружая их целиком в память.
•
node app.js analyze filename.txt
— считывает файл filename.txt построчно, подсчитывает слова в каждой строке и выводит их общее количество для каждой строки в консоль.Решение задачи
const fs = require('fs');
const readline = require('readline');
const path = require('path');
function analyzeFile(filePath) {
const lineReader = readline.createInterface({
input: fs.createReadStream(filePath),
crlfDelay: Infinity
});
lineReader.on('line', (line) => {
const wordCount = line.trim().split(/\s+/).filter(Boolean).length;
console.log(`Строка: "${line}" - Количество слов: ${wordCount}`);
});
lineReader.on('close', () => {
console.log('Анализ файла завершён.');
});
}
const filePath = process.argv[2];
if (!filePath) {
console.error('Укажите путь к файлу для анализа.');
process.exit(1);
}
const fullPath = path.resolve(filePath);
analyzeFile(fullPath);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Сегодня мы рассмотрим, как обнаружить и реагировать на изменение атрибутов веб-компонента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Опыт работы со Strapi и настройка отправки файлов в S3. В статье поделюсь шагами интеграции и кастомными скриптами для работы с облачным хранилищем S3. Удобные решения для новичков и не только.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Разработчик Node.js
•
Node.js, Nest.js, TypeScript, TypeOrm, Redis, Memcached, PostgreSQL, Kafka•
Уровень дохода не указан | от 3 лет опытаNode.JS разработчик
•
Node.js, NestJS, Next.js, Oracle, MsSql, PostgreSQL, REST, SOAP, XML, JSON, RabbitMQ, Kafka, ActiveMQ, ELK, Docker, Kubernetes, SOLID, Git, JIRA, Confluence•
Уровень дохода не указан | от 3 лет опытаFullstack Vue/Node.js разработчик
•
Vue.js, VUEX, Node.js, Bootstrap 3-4, JavaScript (DOM), npm, git, jira, Oracle, Unit-тестирование, Webpack, Gulp•
Уровень дохода не указан | от 4 лет опытаPlease open Telegram to view this post
VIEW IN TELEGRAM
• Пришёл на вакансию дизайнера, а стал питонистом: как IT-специалисты нашли свою первую работу
• На сколько денег может рассчитывать ИТ-предприниматель в разных ветках развития
• Анализ задачи с собеседования в Google: конь и телефонные кнопки
• Быстрый старт в QA Fullstack: чем вооружиться будущему стажеру в Альфа-Банке
• Как убить самоорганизацию в команде: вредные советы для лидера
Please open Telegram to view this post
VIEW IN TELEGRAM
♟ Эпопея шахматных движков: мой опыт в разработке шахматной программы
В этой статье я расскажу про личный опыт написания шахматной программы на языке TypeScript. С какими проблемами столкнулся и пути к их решению.
Читать...
В этой статье я расскажу про личный опыт написания шахматной программы на языке TypeScript. С какими проблемами столкнулся и пути к их решению.
Читать...
👍2
process.nextTick()
в Node.js?Метод
process.nextTick()
добавляет коллбэк в очередь "next tick" в Node.js, позволяя выполнить функцию после текущей операции, но перед следующей итерацией цикла событий. Это полезно, когда нужно завершить текущую операцию, а затем немедленно перейти к следующей задаче, не дожидаясь полного завершения цикла событий.console.log('Начало');
process.nextTick(() => {
console.log('Вызов в nextTick');
});
console.log('Конец');
// Вывод:
// Начало
// Конец
// Вызов в nextTick
🗣 В этом примере process.nextTick() срабатывает сразу после выполнения синхронного кода, но до обработки задач из очереди цикла событий. Это делает nextTick() полезным для выполнения задач с высоким приоритетом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Статья знакомит с использованием NVM для управления версиями Node.js и npm, показывая примеры с Node.js 19 и npm 9. Объясняются преимущества NVM для безопасного обновления и тестирования новых возможностей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🤷♀1
В статье разбираются ключевые особенности Electron, его развитие и влияние на разработку десктопных приложений. Обсуждаются преимущества, примеры использования и удивительная история создания от GitHub.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Каждый раз вручную делаешь сборку, деплой или запускаешь тесты? Это тратит драгоценные минуты (а иногда часы).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Full-stack Developer / Technical Partner (TS, Node.JS)
Backend Engineer (Node.js)
Full Stack Developer (Node.js, TypeScript, SQL)
Please open Telegram to view this post
VIEW IN TELEGRAM
😐2👍1
JavaScript, незаменимый компонент современной веб-разработки, отличается универсальностью и мощью. Однако даже у такого популярного инструмента есть свои сложности. Давайте разберёмся в дополнительных, часто упускаемых из виду аспектах, делающих JavaScript менее идеальным в определённых ситуациях.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Напишите скрипт, который создаёт HTTP-сервер. При запросе на сервер он должен возвращать текст
"Hello, World!"
.•
Сервер запускается на порту 3000.•
При обращении к https://localhost:3000
в браузере или через curl
возвращается строка "Hello, World!"
.Решение задачи
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
});
server.listen(3000, () => {
console.log('Сервер запущен на https://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6
• SMS-автоответчик с обновлением статуса: еще один канал связи для клиентов, которым мало интернета и звонков
• Попробуйте Tauri
• Новый оператор безопасного присваивания в JavaScript: ?=
• Как ускорить компонентную frontend-разработку с помощью продуктового подхода: опыт Рунити
• PostgreSQL Antipatterns: валим «слона» — highload на ровном месте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Git rebase — мощный инструмент, помогающий перенести или объединить один, или несколько коммитов в новый базовый коммит, переписав историю проекта так, чтобы ваша ветка выглядела созданной из другого коммита. Он помогает поддерживать более чистую и линейную историю.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Напишите скрипт на Node.js, который скачивает файл по указанному URL и сохраняет его на диск с заданным именем.
•
Скачивание должно быть реализовано с использованием стандартного модуля https
.•
Если процесс скачивания прерывается, в консоли должна отображаться ошибка.node downloadFile.js https://example.com/file.txt saved_file.txt
Решение задачи
const https = require('https');
const fs = require('fs');
const [,, url, fileName] = process.argv;
if (!url || !fileName) {
console.error('Использование: node downloadFile.js <url> <fileName>');
process.exit(1);
}
const file = fs.createWriteStream(fileName);
https.get(url, (response) => {
if (response.statusCode !== 200) {
console.error(`Ошибка: Невозможно скачать файл. Статус HTTP: ${response.statusCode}`);
response.resume(); // Освобождаем память
return;
}
response.pipe(file);
file.on('finish', () => {
file.close();
console.log(`Файл успешно сохранён как ${fileName}`);
});
}).on('error', (err) => {
fs.unlink(fileName, () => {}); // Удаляем файл в случае ошибки
console.error(`Ошибка скачивания: ${err.message}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Junior/middle Node.js-разработчик
Junior backend разработчик Node.js, JavaScript
Junior Backend Developer Node.js
Please open Telegram to view this post
VIEW IN TELEGRAM