libuv
— это библиотека, используемая Node.js для управления асинхронным вводом/выводом через событийный цикл и пул потоков. Она предоставляет абстракцию над операционными системами, что позволяет Node.js быть кроссплатформенным и эффективно управлять асинхронными операциями, такими как работа с файловой системой, сетевые операции и таймеры.fs.readFile
, происходит через libuv
. Функция передаёт запрос на выполнение в пул потоков, и когда операция завершится, событие добавляется в очередь событий для обработки.const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
🗣️ libuv лежит в основе асинхронной природы Node.js, управляя низкоуровневыми операциями и обеспечивая эффективное выполнение ввода/вывода на уровне ядра.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2👎1
Middle fullstack developer (NodeJS)
•
Node.js, TypeScript, SQL, Docker, CI/CD•
до 180 000 ₽ | Требуемый опыт не указанАрхитектор, Backend разработчик Nest js
•
JavaScript, NestJS, Node.js, TypeScript, Git, Docker, REST•
от 200 000 ₽ | Требуемый опыт не указанNode.js Backend Developer (проект СЭД)
•
TypeScript, Node.js, JavaScript, React•
Уровень дохода не указан | Требуемый опыт не указанPlease open Telegram to view this post
VIEW IN TELEGRAM
❤1😁1
Статья объясняет технику делегирования событий в веб-разработке, показывая, как использование одного слушателя на родительском элементе упрощает управление событиями и повышает производительность.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите скрипт на Node.js, который считывает JSON-файл, фильтрует данные по указанному ключу и значению, и выводит результат в консоль.
node filterJson.js data.json age 30
[
{ "name": "Bob", "age": 30 },
{ "name": "Charlie", "age": 30 }
]
Решение задачи
const fs = require('fs');
const [,, filePath, key, value] = process.argv;
if (!filePath || !key || !value) {
console.error('Использование: node filterJson.js <filePath> <key> <value>');
process.exit(1);
}
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err.message);
process.exit(1);
}
try {
const jsonData = JSON.parse(data);
const filteredData = jsonData.filter(item => item[key] == value);
console.log(JSON.stringify(filteredData, null, 2));
} catch (parseErr) {
console.error('Ошибка парсинга JSON:', parseErr.message);
process.exit(1);
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1👎1👏1
Статья предлагает использовать прокси и кэширование для реестра npm с помощью Verdaccio или Nexus, чтобы повысить безопасность и ускорить установку пакетов. Также обсуждаются риски скриптов жизненного цикла npm и способы их безопасного использования.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Детальный разбор того, как простой анализ производительности помог обнаружить неэффективность WebSocket и оптимизировать передачу данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья исследует ошибки, связанные с попытками создать «идеальный» код. Автор делится опытом, где стремление к универсальности, избыточное кэширование и усложнённые решения усложнили задачи вместо упрощения.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
• Сила лидерского слушания
• Как пройти стажировку бизнес- и системного аналитика и не «сгореть» в персональной преисподней
• «Так и знала, что вы — бывший двоечник!» Самые глупые ошибки моей компьютерной молодости
• Что лучше — оценка рекрутера или подбрасывание монетки?
• Мотивационные стили в обучении: почему вам (возможно) не нужны цели или общение с одногруппниками
Please open Telegram to view this post
VIEW IN TELEGRAM
CommonJS и ES Modules (ESM) — два способа работы с модулями в Node.js. CommonJS является стандартом, который использовался с момента создания Node.js, в то время как ES Modules соответствуют стандарту JavaScript ES6 и обеспечивают более современный подход.
CommonJS:
•
Использует require()
для импорта модулей и module.exports
для экспорта.•
Выполняется синхронно.// commonjs-module.js
module.exports = function greet(name) {
return `Hello, ${name}!`;
};
// main.js
const greet = require('./commonjs-module');
console.log(greet('Alice')); // Hello, Alice!
ES Modules (ESM):
•
Использует import
и export
ключевые слова.•
Выполняется асинхронно.// esm-module.mjs
export function greet(name) {
return `Hello, ${name}!`;
}
// main.mjs
import { greet } from './esm-module.mjs';
console.log(greet('Alice')); // Hello, Alice!
🗣️ В современных приложениях рекомендуется использовать ES Modules благодаря их соответствию стандарту ES6 и поддержке асинхронности. Однако, CommonJS по-прежнему актуален для старых проектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Node.js Backend разработчик (удаленно)
•
Node.js, TypeScript, JavaScript, TCP/IP, PostgreSQL, ClickHouse, Google Pub/Sub, Kafka, RabbitMQ•
от 180 000 до 660 000 ₽ | от 2 летСистемный аналитик
•
BPMN, UML, SQL, OpenProject, Postman•
от 200 000 до 300 000 ₽ | от 3 летMiddle/Senior Node.js developer
•
Node.js, PostgreSQL, MongoDB, Redis, TypeScript, Docker, Kubernetes, RESTful API•
Уровень дохода не указан | от 3 летBackend Developer (Node.js)
•
Node.js, Oracle DB, PostgreSQL, SQL, RabbitMQ, Kafka•
Уровень дохода не указан | от 3 летPlease open Telegram to view this post
VIEW IN TELEGRAM
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Держать в памяти всю структуру проекта, сроки задач и дедлайны? Это рецепт для выгорания.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Статья объясняет, как спрятать данные в PNG-изображении, используя младшие биты (LSB) пикселей. Рассматривается структура PNG, каналы R, G, B и альфа, а также методы внедрения данных без заметного изменения картинки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Откройте для себя возможности управления приоритетами и контроля выполнения задач в JavaScript с помощью нового Scheduler API. Новый подход поможет вам стать более продуктивными и эффективными в своей работе.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Напишите функцию, которая принимает массив объектов и ключ. Функция должна возвращать новый массив, удаляя объекты с повторяющимися значениями указанного ключа. Сохраняйте порядок элементов.
Пример:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];
const result = removeDuplicatesByKey(data, 'name');
console.log(result);
// Ожидаемый результат:
// [
// { id: 1, name: 'Alice' },
// { id: 2, name: 'Bob' },
// { id: 4, name: 'Charlie' }
// ]
Решение задачи
function removeDuplicatesByKey(array, key) {
const seen = new Set();
return array.filter(item => {
const value = item[key];
if (seen.has(value)) {
return false;
}
seen.add(value);
return true;
});
}
// Пример использования:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];
const result = removeDuplicatesByKey(data, 'name');
console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6👍2
• Быстрее пули: как найти счастье с PostgreSQL
• Куда движется Laravel? Обзор интервью с Taylor Otwell
• Nexus-IoC — хорошо знакомый незнакомец в мире TypeScript и DI
• Как сделать React Server Components в Electron с помощью Next.js и без открытых портов
• 10 не самых очевидных причин, чтобы уволиться
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассказывает о создании симуляционной модели для тестирования комбинаций фичей в алгоритмах курьерки. Это позволило анализировать влияние наборов фичей на метрики для разных регионов без долгих А/Б тестов, ускоряя внедрение идей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает путь к файлу и возвращает Promise. Функция должна читать файл построчно с использованием потоков (
streams
), подсчитывать количество строк и возвращать объект с количеством строк и содержанием первой строки.Пример использования:
const filePath = "./example.txt";
processFile(filePath)
.then(result => {
console.log(result);
// Ожидаемый результат (пример):
// { linesCount: 10, firstLine: "This is the first line of the file." }
})
.catch(error => {
console.error("Error:", error);
});
Решение задачи
const fs = require("fs");
const readline = require("readline");
function processFile(filePath) {
return new Promise((resolve, reject) => {
const stream = fs.createReadStream(filePath, { encoding: "utf8" });
const rl = readline.createInterface({ input: stream });
let linesCount = 0;
let firstLine = null;
rl.on("line", line => {
if (linesCount === 0) {
firstLine = line;
}
linesCount++;
});
rl.on("close", () => {
resolve({ linesCount, firstLine });
});
rl.on("error", error => {
reject(error);
});
});
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Backend разработчик NODE.JS
Node.js backend developer
Backend Developer (JS, OpenAI API)
Please open Telegram to view this post
VIEW IN TELEGRAM