Расскажу, как я сделал браузерный сервис на React для определения bpm по микрофону. Без тапов и сторонних приложений — только звук и алгоритмы.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Раз работаешь только ты, значит, можно «и так сойдёт»? А потом этот скрипт ломается в самый важный момент.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Разберём, как изменились React и Vue за 5 лет, оценим их экосистемы и перспективы на фоне развития LLM и AI-агентов. Будет много сравнений, фактов и личных выводов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎4
Расскажу, как максимально просто организовать автоматический деплой React-приложения через CI/CD: что нужно, какие инструменты понадобятся и как сделать так, чтобы сайт был доступен в интернете.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
• Без головы — лучше! Разворачиваем собственную Headless CMS Directus в облаке
• Пишем Realtime для Multiple-page application в микросервисной архитектуре
• Как написать Google Calendar на коленке? Обзор FullCallendar
• Как внедрить наблюдаемость в микросервисное приложение с помощью OpenTelemetry, Jaeger и Prometheus
• Поддержка временных зон в фулстек-приложении на основе NestJS и Angular: работа с REST и WebSockets
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье проверяю, как справляется новый AI-ассистент Junie от JetBrains с реальной задачей, и случайно оказываюсь в ситуации из рассказа Азимова.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
fs.promises
в Node.js и зачем он нужен?Модуль
fs
в Node.js позволяет работать с файловой системой. Начиная с Node 10+, появился fs.promises
, который возвращает Promise
вместо использования колбэков.Это делает код чище и позволяет писать асинхронные операции через
async/await
const fs = require('fs/promises');
async function readFile() {
try {
const data = await fs.readFile('example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error('Ошибка чтения файла:', err);
}
}
readFile();
🗣️ В этом примере файл example.txt читается асинхронно. Ошибки обрабатываются через try/catch, код становится линейным и легко читаемым.
Это современный способ работы с файлами в Node.js без "адских вложенных колбэков".
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Растущее комьюнити Node.js - свидетельство надежности и эффективности этого инструмента. Однако не всем удается извлечь из него максимальную выгоду. Рассмотрим самые распространенные ошибки разработчиков Node.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
JavaScript CustomEvent расширяют функциональность встроенной системы событий. Проще говоря, они позволяют программистам создавать и обрабатывать события, уникальные для их приложения, и в этой статье мы расскажем о них всё.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
При преобразовании между Buffer и String может быть указана кодировка символов. Если кодировка не указана, по умолчанию будет использоваться UTF-8
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
Учимся работать с датой и временем в JavaScript: разбираемся с определением и способом создания объекта Data, его методами и форматами вывода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2❤1👍1
Разместим на одном порту два приложения React с Nginx и Docker. Настроим Docker, добавим конфигурацию Nginx глобально и файл docker-compose.yml.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодняшняя тема посвящена нелегким взаимоотношениям клиентского приложения и сервера PostgreSQL: как на ровном месте, неудачной архитектурой приложения, можно обеспечить себе хронические проблемы производительности.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
«Это никогда не ломается» — последняя фраза перед катастрофой. Особенно в частях кода, которые трогают редко.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
В этой статье мы погрузимся в мир переменных среды в Node.js, рассмотрим их преимущества, примеры использования и лучшие практики эффективного управления ими.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Promise.withResolvers()
Метод
Promise.withResolvers()
повышает гибкость, позволяя удалённо разрешать или отклонять промисы, упрощая и оптимизируя асинхронный код.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Визуализация данных — важная часть любого проекта, связанного с аналитикой и обработкой данных. Мы рассмотрим 7 библиотек: Plotly, D3.js, Nivo, Latitude, Apache ECharts, Victory и Chart.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2👍1
Реализуйте простой HTTP-сервер на Node.js (без фреймворков), который обрабатывает GET-запросы и возвращает
"Hello, client!"
.Но с одним условием: если IP-адрес клиента делает больше 5 запросов за 10 секунд, сервер должен временно блокировать этот IP на 30 секунд и отвечать ему
"429 Too Many Requests"
.Решение задачи
const http = require('http');
const PORT = 3000;
const requestLog = {}; // { ip: [timestamps] }
const bannedIPs = {}; // { ip: unblockTimestamp }
function cleanupOldRequests(ip) {
const now =Date.now ();
requestLog[ip] = (requestLog[ip] || []).filter(ts => now - ts < 10000);
}
const server = http.createServer((req, res) => {
const ip = req.socket.remoteAddress;
if (bannedIPs[ip] &&Date.now () < bannedIPs[ip]) {
res.writeHead(429, { 'Content-Type': 'text/plain' });
return res.end('429 Too Many Requests');
}
cleanupOldRequests(ip);
requestLog[ip].push(Date.now ());
if (requestLog[ip].length > 5) {
bannedIPs[ip] =Date.now () + 30000; // блок на 30 сек
requestLog[ip] = [];
res.writeHead(429, { 'Content-Type': 'text/plain' });
return res.end('429 Too Many Requests');
}
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, client!');
});
server.listen(PORT, () => {
console.log(`Server listening on https://localhost:${PORT}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В рамках этой статьи я опишу создание двух NestJS-модулей с различным способом конфигурирования: утилитарный модуль и бизнес-модуль со своей базой данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM