Все о разработке backend части на JavaScript (Node JS). А так же: Express JS, Next JS, Nest, Socket.IO Канал на бирже - https://telega.in/c/we_use_js По вопросам рекламы или разработки: @g_abashkin РКН: https://vk.cc/cGhHyj
👩💻 Как запустить несколько приложений React на одном порту Nginx с Docker
Разместим на одном порту два приложения React с Nginx и Docker. Настроим Docker, добавим конфигурацию Nginx глобально и файл docker-compose.yml.
Читать...
📈 Подборка статей для вашей карьеры
• В какой момент профессия программиста свернула не туда?
• Офис Intel в Израиле отменил бесплатный кофе
• Войти в IT – в 37 и с дипломом филфака
• Путь к мастерству: Как стать успешным разработчиком
• Галера от HH или джуны по-дешевке
👩💻 Пользовательские события CustomEvent
JavaScript CustomEvent расширяют функциональность встроенной системы событий. Проще говоря, они позволяют программистам создавать и обрабатывать события, уникальные для их приложения, и в этой статье мы расскажем о них всё.
Читать...
⚙️ Что такое 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, код становится линейным и легко читаемым.
➡️ Самые интересные статьи за последние дни:
• Без головы — лучше! Разворачиваем собственную Headless CMS Directus в облаке
• Пишем Realtime для Multiple-page application в микросервисной архитектуре
• Как написать Google Calendar на коленке? Обзор FullCallendar
• Как внедрить наблюдаемость в микросервисное приложение с помощью OpenTelemetry, Jaeger и Prometheus
• Поддержка временных зон в фулстек-приложении на основе NestJS и Angular: работа с REST и WebSockets
Онлайн-магистратура в IT совместно с ИТМО, МИФИ и МФТИ
День открытых дверей
В удобное время | Онлайн
Все программы 2025, общение со студентами и экспертами из вузов и Яндекса. Ответы на вопросы.
Зарегистрироваться
#реклама 16+
practicum.yandex.ru
О рекламодателе
🔐 Делай внутренние инструменты с внешним качеством
Раз работаешь только ты, значит, можно «и так сойдёт»? А потом этот скрипт ломается в самый важный момент.
👉 Совет: относись к своим внутренним тулзам как к продукту. Добавь ошибки, валидацию, минимальный UX. Тебе же потом их запускать в спешке, лучше если они не подведут.
🤔 SSG своими руками
В статье покажу, как собрать статический сайт на React без Next.js и прочих фреймворков. Чистый подход с нуля, если хочется или приходится обойтись без лишней магии.
Читать...
📈 Подборка статей для вашей карьеры
• Центральный Университет: взгляд магистра изнутри (1 семестр)
• Стартап vs корпорации vs предпринимательство: кому, куда и зачем?
• Почему соискателям не стоит постить нюдсы, что такое culture fit и чем IT-индустрия напоминает подростка
• Лидерами рождаются или становятся? Откуда берутся управленцы и лидеры в IT
• Работать или переработать: как победить в себе заядлого удаленщика
👩💻 Cypress + axe-core: быстрый старт тестов на доступность
Показываю, как быстро втащить тесты доступности в проект на Cypress с axe-core и TypeScript. Проверим контраст, aria-label, роли и alt, чтобы сделать интерфейс удобным не только для здоровяков.
Читать...
⚙️ Профилирование Node.js приложения с помощью Pyroscope (без автоинструментирования)
Покажу, как за пару шагов подключить Node.js к Pyroscope, настроить профилирование и без Grafana увидеть, где зарываются тормоза в коде.
Читать...
👩💻 Умный кеш JSON-запросов в файл
Реализуйте функцию fetchWithCache(url, ttl)
, которая делает HTTP-запрос по заданному URL (используя https
), и кеширует результат в файл.
Если при повторном вызове с тем же URL кеш актуален (время жизни не истекло), функция должна вернуть данные из файла, не обращаясь к сети.
Поведение:
• Результат сохраняется в файл с названием, основанным на URL (можно использовать хеш).
• TTL (time to live) указывается в миллисекундах.
• Если кеш устарел или отсутствует, функция делает реальный HTTP-запрос и обновляет файл.
const https = require('https');Читать полностью…
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
function fetchWithCache(url, ttl) {
const cacheDir = path.resolve(__dirname, 'cache');
const hash = crypto.createHash('md5').update(url).digest('hex');
const cacheFile = path.join(cacheDir, `${hash}.json`);
if (!fs.existsSync(cacheDir)) {
fs.mkdirSync(cacheDir);
}
return new Promise((resolve, reject) => {
if (fs.existsSync(cacheFile)) {
const { mtimeMs } = fs.statSync(cacheFile);
const now = Date.now();
if (now - mtimeMs < ttl) {
const cached = fs.readFileSync(cacheFile, 'utf-8');
return resolve(JSON.parse(cached));
}
}
https.get(url, res => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => {
fs.writeFileSync(cacheFile, data, 'utf-8');
resolve(JSON.parse(data));
});
}).on('error', reject);
});
}
// Пример использования:
fetchWithCache('https://jsonplaceholder.typicode.com/todos/1', 5000)
.then(data => console.log(data))
.catch(err => console.error(err));
➡️ Самые интересные статьи за последние дни:
• Как разработчик вышел на $400 000/мес на AI-сервисе для написания эссе
• Переводим 50 приложений на Module Federation и ничего не ломаем
• Как мы создали микросервисное приложение для анализа вакансий с hh.ru: Docker, Kafka, Elasticsearch и ещё немного магии
• Как мы мигрируем с JQuery на React
⚙️ Что такое path.resolve()
в Node.js и зачем оно используется?path.resolve()
— это метод модуля path
в Node.js, который возвращает абсолютный путь, объединяя переданные сегменты пути. Он полезен для построения пути к файлам и директориям независимо от текущей рабочей директории.
➡️ Пример:
const path = require('path');
// Построение абсолютного пути
const fullPath = path.resolve('folder', 'subfolder', 'file.txt');
console.log(fullPath); // Например: /Users/username/project/folder/subfolder/file.txt
🗣️ В этом примере path.resolve() объединяет сегменты пути и возвращает абсолютный путь к файлу. Это помогает избежать проблем с относительными путями и улучшает кросс-платформенность приложений.
🔎 Улучшай не только код, но и поиск по нему
Если ты не можешь быстро найти нужный кусок кода, он как будто и не существует.
👉 Совет: структурируй проект так, чтобы названия файлов, функций и переменных были максимально предсказуемыми. Пользуйся соглашениями, чтобы любой grep или поиск в IDE находил нужное мгновенно. Навигация — это часть DX.
👩💻 Дата и время в JavaScript
Учимся работать с датой и временем в JavaScript: разбираемся с определением и способом создания объекта Data, его методами и форматами вывода.
Читать...
👩💻 Как преобразовать Node.js Buffer в String
При преобразовании между Buffer и String может быть указана кодировка символов. Если кодировка не указана, по умолчанию будет использоваться UTF-8
Читать...
👩💻 4 типичные ошибки разработчиков Node.js
Растущее комьюнити Node.js - свидетельство надежности и эффективности этого инструмента. Однако не всем удается извлечь из него максимальную выгоду. Рассмотрим самые распространенные ошибки разработчиков Node.js.
Читать...
⚙️ Пробуем Junie от JetBrains на реальной задаче (или как я попал в рассказ Азимова)
В этой статье проверяю, как справляется новый AI-ассистент Junie от JetBrains с реальной задачей, и случайно оказываюсь в ситуации из рассказа Азимова.
Читать...
⚙️ CI/CD для чайников — разберитесь, и начните автоматизировать рутину в разработке. Часть 3. Его величество, деплой
Расскажу, как максимально просто организовать автоматический деплой React-приложения через CI/CD: что нужно, какие инструменты понадобятся и как сделать так, чтобы сайт был доступен в интернете.
Читать...
⚙️ React vs Vue – подробное сравнение и перспективы
Разберём, как изменились React и Vue за 5 лет, оценим их экосистемы и перспективы на фоне развития LLM и AI-агентов. Будет много сравнений, фактов и личных выводов.
Читать...
🔊 Определение bpm (beats per minute) в браузере
Расскажу, как я сделал браузерный сервис на React для определения bpm по микрофону. Без тапов и сторонних приложений — только звук и алгоритмы.
Читать...
📈 Подборка статей для вашей карьеры
• Чем стартап отличается от бизнеса и что выбрать
• Как оформить резюме на стажировку, если нет опыта работы
• Прийти на внедренный проект на этапе развития системы: как аналитику быстро погрузиться в процессы
• Как 97 лет назад хитрый менеджер-заяц заставил грозного лентяя сделать то, что тот очень не хотел. Смогли бы так?
• 10 лучших приёмов логирования для разработчиков
🤔 Я знаю, что ты думал в прошлый дейлик
На входе — обычный push. На выходе — коммит, улучшенный с помощью LLM, сохранённый в векторной базе, доступный для поиска и семантического анализа. Пишем простой MCP-сервер для трекинга изменений ваших проектов.
Читать...
👩💻 8 советов, которые сделают JavaScript-код чище
Проблемный код, даже если он более или менее работает, требует больших затрат на поддержку. Отточить навыки создания чистого кода, хорошо читаемого и легко поддерживаемого, помогут 8 простых советов.
Читать...
👩💻 Какой метод глубокого клонирования в JavaScript наиболее эффективный — исследование
Чтобы выделить "победителя" среди методов глубокого клонирования в JavaScript, необходимо протестировать каждый из них. Предлагаем результаты серии модульных тестов.
Читать...
⚙️ Создание вращающейся ручки на основе Input Range
Рассказал, как отчаяние, Яндекс, Google и капля безумия привели меня к самодельной вращающейся ручке (кнобу), которую не нашёл в туториалах. Сам в шоке, но теперь она у меня есть.
Читать...
⚙️ LLM-first: парная разработка без вайбкодинга
Собрал мультиязычную файловую CMS с SSR и GitHub Actions, но вручную переводить устал. Подключил ИИ — не как кодер-маг, а как тиммейт. Делюсь, что из этого вышло и как всё устроено.
Читать...
⚙️ Фронтенд и бэкенд больше не будут общаться как прежде: создаём конструктор сценариев на базе Backend Driven UI
Начали с простой правки в чате, а выкрутились на Backend Driven UI с конструктором сценариев. Рассказываю, как случайный кейс стал драйвером системной прокачки всего приложения.
Читать...
⚙️ Как я с помощью ChatGPT и Midjourney браузерную игру для изучения регулярных выражений создавал
Автор вдохновился CSS Diner и спустя три года решил повторить механику — только с новой темой и на React. Рассказывает, как из идеи в голове вырос пет-проект.
Читать...