Все о разработке backend части на JavaScript (Node JS). А так же: Express JS, Next JS, Nest, Socket.IO Канал на бирже - https://telega.in/c/we_use_js По вопросам рекламы или разработки: @g_abashkin РКН: https://vk.cc/cGhHyj
👩💻 Temporal и в целом работа с датой, временем и часовыми поясами
Автор исследует, почему стандартный Date в JS — боль, и как новый API Temporal спасает от хаоса со временем, часовыми поясами и форматами. Всё по делу, с примерами и выводами.
Читать...
👩💻 Как работает Node.js
Node.js крут не из-за JS, а потому что умеет асинхронность без Web API. В статье — как libuv, цикл событий и многослойная магия делают это возможным. Теперь станет понятно, что за фазы.
Читать...
⚙️ Почему твой await fetch тормозит — и как это исправить
В этой статье рассмотрим, почему безобидная строчка await fetch() неожиданно превращается в тормоз, где именно она зарывает драгоценные миллисекунды — и что можно сделать с этим.
Читать...
⚙️ Pocupochki: когда лень писать список покупок, но есть 2 часа и доступ к Gemini
Рассказываю, как с помощью Google Stitch за 30 секунд получил готовый дизайн приложения, а потом с Gemini за пару часов превратил его в работающий сервис с голосовым вводом
Читать...
➡️ Самые интересные статьи за последние дни:
• Вам не нужно готовое API чтобы начать писать фронтенд или краткий обзор готовых решений для мокинга данных
• Ускоряем браузерные вычисления на коленке с помощью WebAssembly на примере генерации шума
• JavaScript-консоль для QA-инженера: от поиска багов до автоматизации
• Абсурдная незащищенность проекта @gamee
• CI/CD для начинающих: деплой React-приложения без боли
🎮 Делаешь pet-проект? Ограничь его правилами
Pet-проекты часто превращаются в бесконечные «песочницы», которые никогда не заканчиваются.
👉 Совет: перед стартом задай себе рамки: цель, ограничение по времени, минимум фич. Работай над проектом как над продуктом. Тогда это будет и полезно, и завершено.
⚙️ Что такое fs.promises
в Node.js и как его использовать?fs.promises
— это API для работы с файловой системой с использованием промисов, что позволяет писать асинхронный код без коллбеков.
➡️ Пример:
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.message);
}
}
readFile();
🗣️ В этом примере fs.promises.readFile используется для чтения файла асинхронно, делая код чище и проще для обработки ошибок через try-catch.
➡️ Опыт работы с Serverless-архитектурой для Telegram-бота на Vercel и Timeweb Cloud
Автор делится опытом запуска Telegram-бота в Serverless-архитектуре, сравнивая Vercel и Timeweb Cloud по цене, удобству и нюансам работы с OpenAI. Про стек, боль и лайфхаки.
Читать...
➡️ Самые интересные статьи за последние дни:
• HTTP-запросы: параметры, методы и коды состояния
• Как использовать Evolution free tier: опыт тех, кто уже запустил проект с помощью бесплатных ресурсов в облаке
• Литкод изи — это просто
• Аптайм вахтер: мониторинг веб-сервисов с помощью Globalping и уведомлениями в Telegram
• Быстрее пули: как найти счастье с PostgreSQL
👀 Аптайм вахтер: мониторинг веб-сервисов с помощью Globalping и уведомлениями в Telegram
Статья исследует, как обеспечить стабильность и доступность сервиса по всему миру. Рассмотрены методы контроля скорости работы сайта и мониторинга проблем маршрутизации и цензуры, выходящие за рамки стандартных аналитических решений.
Читать...
👩💻 Задачка по NodeJS
Создайте приложение на Node.js, которое кэширует данные с ограничением по времени. Когда кэш истекает, данные должны автоматически обновляться из внешнего источника (например, из API) при следующем запросе.
➡️ Пример:
• node app.js fetch
— получает данные из кэша, а если кэш истек, то запрашивает данные заново и обновляет кэш.
Решение задачи ⬇️
const fs = require('fs');Читать полностью…
const path = require('path');
const fetch = require('node-fetch');
const cacheFile = path.join(__dirname, 'cache.json');
const CACHE_TTL = 60 * 1000; // 1 минута
// Функция для обновления кэша
async function updateCache() {
const data = await fetch('https://api.example.com/data').then(res => res.json());
const cacheData = { data, timestamp: Date.now() };
fs.writeFileSync(cacheFile, JSON.stringify(cacheData));
return data;
}
// Функция для получения данных из кэша
async function fetchData() {
if (fs.existsSync(cacheFile)) {
const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
const isCacheValid = Date.now() - cache.timestamp < CACHE_TTL;
if (isCacheValid) {
console.log('Данные из кэша:', cache.data);
return cache.data;
}
}
console.log('Обновление кэша...');
return await updateCache();
}
// Проверка кэша
fetchData().then(data => console.log('Полученные данные:', data));
👩💻 Циклические импорты на фронтенде
В статье рассматриваются проблемы, которые создают рекурсивные зависимости на фронте. Обсуждаются способы их обнаружения и решения, ведь часто разработчики даже не знают, что в проекте есть циклические зависимости.
Читать...
🌟 Не увлекайся «современным ради современного»
Узнал о новой библиотеке и сразу хочешь внедрить её в проект? Но спустя неделю понимаешь, что она только усложнила код.
👉 Совет: всегда задавай себе вопрос: что конкретно улучшит этот инструмент? Если ответ нечёткий — не внедряй. Иногда старые проверенные технологии работают лучше, чем самые новые и модные решения.
➡️ Самые интересные статьи за последние дни:
• Быстрее пули: как найти счастье с PostgreSQL
• Куда движется Laravel? Обзор интервью с Taylor Otwell
• Nexus-IoC — хорошо знакомый незнакомец в мире TypeScript и DI
• Как сделать React Server Components в Electron с помощью Next.js и без открытых портов
• 10 не самых очевидных причин, чтобы уволиться
⚙️ Как я создавал онлайн игру «нарды». Сервер
В статье рассказывается о реализации ботов для игры "длинные нарды". Автор описывает, как строится архитектура сервера и модули, а также делится особенностями создания ИИ-игроков, которые управляются программой.
Читать...
⚒️ Как освоить работу с API и научиться интегрировать реальные данные на веб-страницу?
На открытом вебинаре вы разберетесь:
▸Что такое API, как с ним работать;
▸Как получать данные с реальных серверов с помощью JavaScript и fetch();
▸ Мы покажем, как создавать простые приложения с реальными API: погода, курсы валют, случайные цитаты.
❗️ Получите практические навыки работы с API, которые помогут вам быстро создать полезные веб-приложения. Это отличный старт для начинающих разработчиков и верстальщиков, которые хотят выйти на новый уровень.
📅 Урок 3 июня в 20:00 МСК проходит в преддверие старта курса «Fullstack Developer»: https://vk.cc/cMoK0P
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👩💻 Парсинг тела POST-запроса без сторонних библиотек в Node.js
Напишите сервер на Node.js, который обрабатывает POST-запрос и парсит JSON-тело без использования фреймворков и внешних зависимостей. Это полезно для понимания низкоуровневой работы с HTTP-запросами.
Решение задачи🔽
const http = require('http');Читать полностью…
const server = http.createServer((req, res) => {
if (req.method === 'POST' && req.url === '/data') {
let body = '';
// Сбор данных из потока
req.on('data', chunk => {
body += chunk;
});
// После завершения получения данных
req.on('end', () => {
try {
const parsedData = JSON.parse(body);
console.log('Полученные данные:', parsedData);
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Данные получены успешно' }));
} catch (err) {
res.writeHead(400, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ error: 'Невалидный JSON' }));
}
});
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found');
}
});
server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000');
});
⚙️ Middle JavaScript: как избежать ловушек hoisting'а, объектов и связных списков на собеседованиях
Автор разбирает три типовых задачи с собесов для JS-мидлов: про hoisting, ловушки работы с объектами и связные списки. Много edge-кейсов и проверка, не на автомате ли ты всё это пишешь
Читать...
⚙️ ReCAPTCHA Enterprise: подробный разбор способы распознавания и варианты обхода, какие решатели капчи существуют
Автор разбирает, как работает продвинутая reCAPTCHA Enterprise, зачем она нужна сайтам и почему автоматизаторам она как кость в горле
Читать...
⚙️ Как я создал мини-реддит на базе Telegram
Автор с нуля создаёт Reddit-подобное сообщество в Telegram, несмотря на нулевой опыт с ботами. Много граблей, но ещё больше фана и кода
Читать...
🤔 Почему я исправляю баги бесплатно и как это изменило мою карьеру
Покажу, как участие в open source началось с фикса чужой опечатки, привело в core команду крупной библиотеки и почему это до сих пор один из лучших способов расти как разработчик.
Читать...
👩💻 Автовыведение типов в TypeScript: мощь дженериков и функций
Автор делится свежим открытием об автовывода типов в дженериках TypeScript — на реальном примере функции fetchFile. Даже спустя 7 лет язык продолжает раскрывать новые грани.
Читать...
➡️ Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач
В статье — разбор среды выполнения JavaScript: как она устроена, что происходит с кодом во время исполнения и почему это важно понимать даже тем, кто не пишет чистый JS.
Читать...
➡️ История одного компонента
В статье показывают эволюцию простого счётчика — от React до чистого JS без ререндера: годы экспериментов ради компонента, в котором всё прозрачно и управляется только кодом.
Читать...
👩💻 Как обнаружить изменение атрибутов веб-компонента
Сегодня мы рассмотрим, как обнаружить и реагировать на изменение атрибутов веб-компонента.
Читать...
🎯 Выстрелил и забыл: 3 основные стратегии отправки сообщений в Kafka
Какой подход обеспечит вашему проекту идеальный баланс производительности и гарантии доставки: рискованная стратегия «Выстрелил и забыл» или продвинутая асинхронная отправка?
Читать...
❌⭕️ Я хочу сыграть с тобой в одну игру: пилим «Крестики-нолики» на JavaScript
Хватит теории – пора практиковаться! Мы разберем создание полноценной браузерной игры, затрагивая ключевые концепции frontend-разработки. Идеально для новичков, жаждущих применить свои знания в реальном проекте.
Читать...
👩💻 Твой JavaScript должен быть проще: 10 приемов современного разработчика
Советы по написанию короткого, лаконичного и чистого кода на JavaScript
Читать...
👩💻 Освоение безопасной для типов JSON-сериализации в TypeScript
Предлагаем руководство по использованию TypeScript для безопасной для типов сериализации и десериализации данных в формате JSON. Освоение этой стратегии позволит своевременно обнаруживать потенциальные ошибки во время разработки приложения.
Читать...
👩💻 Введение в AI Selfie Background Remover с использованием TensorFlow.js для React-приложений
В статье рассматривается "React Selfie AI Background Remover" — компонент, использующий TensorFlow.js для удаления фона в браузере. Основные фишки: точная сегментация с MediaPipe, легкая интеграция в React и live demo.
Читать...