Telegram Web Link
⚙️ Асинхронность – не баг, а фича: 4 паттерна, которые спасут ваш распределенный сервис

Представь, что ты отправляешь сообщение в мессенджере, а оно доходит с задержкой в минуту. Бесит? А теперь представь, что у тебя сервис с миллионами пользователей, и каждое их действие должно мгновенно отражаться везде. Звучит как кошмар? Спокойно, есть четыре проверенных способа решить эту головоломку, и они реально работают.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👩‍💻 Задачка по NodeJS

Создайте сервер на Node.js, который логирует все входящие запросы с указанием времени и метода запроса (GET, POST и т. д.). Логи должны сохраняться в файл requests.log. Каждая запись должна добавляться в файл с новой строки, а файл логов должен автоматически очищаться каждый день в полночь.

➡️ Пример:

• При получении запроса сервер записывает его метод и время в файл requests.log. Каждый день в полночь файл логов очищается.

Решение задачи ⬇️

const http = require('http');
const fs = require('fs');
const path = require('path');

// Путь к файлу логов
const logFilePath = path.join(__dirname, 'requests.log');

// Функция для записи лога
function logRequest(method) {
const timestamp = new Date().toISOString();
const logEntry = `${timestamp} - ${method}\n`;

fs.appendFile(logFilePath, logEntry, (err) => {
if (err) console.error('Ошибка записи в лог:', err);
});
}

// Создание сервера
const server = http.createServer((req, res) => {
logRequest(req.method);
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Запрос логирован!\n');
});

// Очистка файла логов в полночь
function clearLogDaily() {
const now = new Date();
const timeToMidnight = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1) - now;

setTimeout(() => {
fs.writeFile(logFilePath, '', (err) => {
if (err) console.error('Ошибка очистки логов:', err);
console.log('Файл логов очищен.');
});
clearLogDaily();
}, timeToMidnight);
}

// Запуск очистки логов
clearLogDaily();

// Запуск сервера
server.listen(3000, () => {
console.log('Сервер запущен на порту 3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1🔥1
🔎 Подборка вакансий для джунов

Node.js backend developer
🟢JavaScript, TypeScript, Node.js, Express.js, NestJS, Docker, React, Vue.js, PHP, Python
🟢до 1 000 $ до вычета налогов | 1–3 года опыта

Node.js Developer
🟢Node.js, TypeScript, Express.js, NestJS, SQL, NoSQL, Blockchain, Web3.js, MongoDB, PostgreSQL, RabbitMQ, RESTful API, WebSocket
🟢Уровень дохода не указан | 1–3 года опыта

Web-программист Node.js (Junior) удаленно
🟢Node.js, Express.js, React.js, PostgreSQL, Linux, Nginx, Git, Apache Kafka
🟢от 30 000 до 50 000 ₽ до вычета налогов | 1–3 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🔥2
🤔 Почему мы выбрали gRPC вместо tRPC?

Статья объясняет, как gRPC упрощает переход от монолита к микросервисам в приложениях на основе Domain Driven Design. Рассматриваются преимущества: прямые вызовы, типизация, децентрализация и автоматизация методов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как работает worker_threads в Node.js и зачем он нужен?

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
👀 Аптайм вахтер: мониторинг веб-сервисов с помощью Globalping и уведомлениями в Telegram

Статья исследует, как обеспечить стабильность и доступность сервиса по всему миру. Рассмотрены методы контроля скорости работы сайта и мониторинга проблем маршрутизации и цензуры, выходящие за рамки стандартных аналитических решений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Задачка по NodeJS

Создайте приложение на 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
👩‍💻 Как я настраивал S3 в Strapi? Больно, но не сильно

Опыт работы со 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
Эпопея шахматных движков: мой опыт в разработке шахматной программы

В этой статье я расскажу про личный опыт написания шахматной программы на языке 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
👩‍💻 Управление Node.js 19 и NPM 9 с помощью NVM

Статья знакомит с использованием NVM для управления версиями Node.js и npm, показывая примеры с Node.js 19 и npm 9. Объясняются преимущества NVM для безопасного обновления и тестирования новых возможностей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🤷‍♀1
🤔 Что случилось с легковесными десктопными приложениями? История Electron

В статье разбираются ключевые особенности Electron, его развитие и влияние на разработку десктопных приложений. Обсуждаются преимущества, примеры использования и удивительная история создания от GitHub.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔄 Автоматизируй повторяющиеся задачи

Каждый раз вручную делаешь сборку, деплой или запускаешь тесты? Это тратит драгоценные минуты (а иногда часы).

👉 Совет: внедри CI/CD-пайплайн, используй скрипты для рутинных задач. Один раз автоматизируй, и тебе больше не придётся думать о рутине. Вместо этого сосредоточься на создании чего-то нового.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔎 Подборка зарубежных вакансий

Full-stack Developer / Technical Partner (TS, Node.JS)
🟢TypeScript, React, Vue, Next.js, Nuxt.js, Node.js, PostgreSQL, Redis, CI/CD, Highload, Blockchain
🟢Уровень дохода не указан | 3–6 лет опыта

Backend Engineer (Node.js)
🟢Node.js, GraphQL, RedwoodJS, Prisma ORM, Firebase, Git
🟢Уровень дохода не указан | 3–6 лет опыта

Full Stack Developer (Node.js, TypeScript, SQL)
🟢Node.js, Express.js, React, TypeScript, SQL, RESTful API, SurveySparrow, Apache Airflow, Qualtrics, AWS
🟢Уровень дохода не указан | 3–6 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
😐2👍1
👩‍💻 Недостатки JavaScript

JavaScript, незаменимый компонент современной веб-разработки, отличается универсальностью и мощью. Однако даже у такого популярного инструмента есть свои сложности. Давайте разберёмся в дополнительных, часто упускаемых из виду аспектах, делающих JavaScript менее идеальным в определённых ситуациях.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
2025/07/08 13:39:39
Back to Top
HTML Embed Code: