Все о разработке backend части на JavaScript (Node JS). А так же: Express JS, Next JS, Nest, Socket.IO Канал на бирже - https://telega.in/c/we_use_js По вопросам рекламы или разработки: @g_abashkin РКН: https://vk.cc/cGhHyj
➡️ Самые интересные статьи за последние дни:
• Слабоумие и отвага: как найти ликвидные облигации с доходностью до 40% и ежемесячными фиксированными выплатами
• Nuxt I18n Micro: Как я решил написать свой i18n для NuxtJS
• Четыре пункта, как улучшить код Backend стажера
• Получение серверного времени через WebSockets и отображение его в Angular-приложении
• Добавление поддержки нескольких языков в NestJS и Angular приложениях
👩💻 Array.filter() под микроскопом: секреты работы с массивами
В статье подробно разбирается метод Array.prototype.filter() в JavaScript. Поговорим о его внутреннем механизме, особенностях работы и нюансах, которые могут быть полезны разработчикам.
Читать...
⚙️ Что такое events модуль в Node.js?events
— это встроенный модуль в Node.js для работы с событиями. Он позволяет испускать и обрабатывать пользовательские события.
➡️ Пример:
const EventEmitter = require('events');
// Создаем новый экземпляр EventEmitter
const emitter = new EventEmitter();
// Добавляем обработчик события
emitter.on('greet', (name) => {
console.log(`Привет, ${name}!`);
});
// Испускаем событие
emitter.emit('greet', 'Иван');
🗣️ В этом примере событие greet создаётся и обрабатывается с использованием EventEmitter. Это основной инструмент для реализации событийной архитектуры в Node.js.
📈 Подборка статей для вашей карьеры
• Как устроен Профсоюз работников IT
• Ёлочка, гори, айтишник, не гори
• Стоит ли идти в геймдев в 2025 году?
• Нам не нужны кодеры, нам нужны инженеры-разработчики
• Как мы разработали систему грейдинга для системных аналитиков
⚙️ Четыре пункта, как улучшить код Backend стажера
В статье разобраны распространенные проблемы в коде начинающих разработчиков с конкретными решениями: грамотная инъекция зависимостей, использование Scoped-сервисов, паттерн Generic Repository и создание Stateless-классов.
Читать...
👩💻 Сервер, возвращающий случайную цитату
Создайте HTTP-сервер на Node.js, который по запросу возвращает случайную цитату из заранее заданного списка.
Ожидаемое поведение:•
Сервер запускается на порту 3000.•
При GET-запросе на /quote сервер возвращает JSON с случайной цитатой.•
При запросе на другой путь возвращается сообщение об ошибке.
Решение задачи🔽
const http = require('http');Читать полностью…
const quotes = [
"The only limit to our realization of tomorrow is our doubts of today.",
"Do not watch the clock. Do what it does. Keep going.",
"The future depends on what you do today.",
"Success is not the key to happiness. Happiness is the key to success.",
"Hardships often prepare ordinary people for an extraordinary destiny."
];
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'application/json');
if (req.url === '/quote' && req.method === 'GET') {
const randomQuote = quotes[Math.floor(Math.random() * quotes.length)];
res.writeHead(200);
res.end(JSON.stringify({ quote: randomQuote }));
} else {
res.writeHead(404);
res.end(JSON.stringify({ error: 'Invalid endpoint' }));
}
});
server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000');
});
⚙️ Что такое path
модуль в Node.js и как он используется?path
— это встроенный модуль в Node.js для работы с файловыми путями. Он упрощает создание, объединение и нормализацию путей, обеспечивая кросс-платформенную совместимость.
➡️ Пример:
const path = require('path');
const fullPath = path.join(__dirname, 'files', 'example.txt'); // Объединение путей
console.log(fullPath); // Полный путь к файлу
console.log(path.basename(fullPath)); // example.txt (имя файла)
console.log(path.extname(fullPath)); // .txt (расширение файла)
🗣️ В этом примере модуль path используется для создания и анализа путей к файлам, что упрощает работу с файловой системой в Node.js.
⚙️ Как 9.3 уязвимость ждала открытия 3 года
Я расскажу, как мы нашли в Next.js уязвимость с оценкой 9.3, которая спокойно пряталась в middleware аж три года, пока её никто не трогал.
Читать...
👩💻 Тестирование Node.js с использованием Mocha, Chai и Sinon
JavaScript и Node.js имеют множество библиотек тестирования и утверждений, таких как Jest, Jasmine, Qunit и Mocha. В этой статье мы рассмотрим, как использовать Mocha для тестирования, Chai для утверждений и Sinon для моков, шпионов и стабов.
Читать...
🤔 Использовать двойные кавычки или нет
Совсем недавно я снова услышал, что в PHP до сих пор обсуждают одинарные и двойные кавычки, и что использование одинарных кавычек — это просто микрооптимизация, но если вы привыкнете постоянно использовать одинарные кавычки, то сэкономите кучу процессорных циклов!
Читать...
📈 Подборка статей для вашей карьеры
• ИТ-шники: разновидности, отличительные черты
• Софт-скиллы для инженеров: готовим новое поколение специалистов техподдержки
• Движение вверх: как стать CTO — на примере пяти историй ИТ-директоров
• Какие айтишники будут востребованы в 2035г, а какие – нет?
• Как мы помогаем развиваться web3 front-end разработчикам благодаря нашей Карте развития в 2024 году
👩💻 Как спрятать любые данные в PNG
Статья объясняет, как спрятать данные в PNG-изображении, используя младшие биты (LSB) пикселей. Рассматривается структура PNG, каналы R, G, B и альфа, а также методы внедрения данных без заметного изменения картинки.
Читать...
👩💻 Задачка по NodeJS
Напишите скрипт, который принимает путь к папке, считывает все файлы в этой папке и записывает их имена, размеры (в байтах) и дату последнего изменения в JSON-файл.
Пример использования:
node generateFileInfo.js ./example-folder
"name": "file1.txt",
"size": 1234,
"lastModified": "2023-09-01T12:34:56.789Z"
"name": "file2.js",
"size": 456,
"lastModified": "2023-09-02T14:56:23.123Z"
const fs = require('fs');Читать полностью…
const path = require('path');
const folderPath = process.argv[2];
if (!folderPath) {
console.error('Пожалуйста, укажите путь к папке.');
process.exit(1);
}
fs.readdir(folderPath, (err, files) => {
if (err) {
console.error('Ошибка чтения папки:', err.message);
return;
}
const fileInfo = files.map(file => {
const filePath = path.join(folderPath, file);
const stats = fs.statSync(filePath);
return {
name: file,
size: stats.size,
lastModified: stats.mtime.toISOString(),
};
});
fs.writeFile('files.json', JSON.stringify(fileInfo, null, 2), err => {
if (err) {
console.error('Ошибка записи файла:', err.message);
return;
}
console.log('Информация о файлах сохранена в files.json');
});
});
🤔 Как избавиться от WebSockets и сэкономить $1 млн в год: неожиданные решения для оптимизации
Детальный разбор того, как простой анализ производительности помог обнаружить неэффективность WebSocket и оптимизировать передачу данных.
Читать...
⚡️Освойте Vue.js и ускорьте разработку в разы!
Vue.js — это быстрый, гибкий и удобный фреймворк для фронтенда. С ним можно быстро создавать сложные веб-приложения, не тратя месяцы на освоение новых концепций. Хотите научиться писать чистый код, разрабатывать SPA и внедрять современные подходы к UI?
На этом обучении вы разберетесь в архитектуре Vue.js, освоите Vue-router, Vuex, Webpack и TypeScript. Научитесь создавать масштабируемые приложения, работать с GraphQL, Firebase и тестировать код с Jest и Cypress.
Vue проще в освоении, чем Angular, и предоставляет более декларативный подход по сравнению с React. Вы научитесь работать с реактивностью, шаблонами и API, которые позволят писать чистый и поддерживаемый код. Этот курс поможет вам выделиться среди других фронтенд-разработчиков.
👉Пройдите вступительное тестирование прямо сейчас и получите скидку на обучение: https://otus.pw/wLyH/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, erid: 2VtzquxBB9J
👩💻 Паттерны для эффективного манипулирования DOM с ванильным JavaScript
В руководстве рассматриваются такие шаблоны работы с DOM на JavaScript, как выбор правильного querySelector, кэширование элементов и улучшение обработки событий.
Читать...
➡️ Web Performance API: Измерьте важное
От медленного к быстрому: Использование JavaScript Performance API для оптимизации веб-приложений
Читать...
⚙️ Что бы я хотел знать о Postgres, когда начал его изучать
Я профессионально работаю над веб-приложениями уже более десяти лет, и за это время пришлось научиться использовать множество различных систем и инструментов. В процессе обучения я обнаружил, что официальная документация, как правило, оказывается наиболее полезной.
Читать...
🤔 Слабоумие и отвага: как найти ликвидные облигации с доходностью до 40% и ежемесячными фиксированными выплатами
Статья исследует облигации с доходностью до 40% и ежемесячными купонами. Описаны инструменты поиска ликвидных облигаций, риски инвестирования в ВДО и их зависимость от ключевой ставки.
Читать...
Хотите научиться управлять реактивностью в Vue 3? Это ключевая концепция для создания динамичных и интерактивных интерфейсов!
📌На нашем вебинаре вы разберете, как работает реактивность во Vue 3 и почему это важно для ваших приложений. Мы познакомим вас с Composition API — новым подходом к организации кода, который повысит гибкость и поддерживаемость ваших проектов.
Присоединяйтесь к вебинару и узнайте, как улучшить свои навыки и оптимизировать работу с Vue 3. Мы покажем практические примеры, которые вы сможете сразу применить в своих проектах!
Кому будет полезен вебинар?
- Разработчикам, которые хотят плавно перейти с Vue 2 на Vue 3.
- Новичкам, которые хотят понять основы реактивности и писать структурированный код.
- Опытным разработчикам, стремящимся углубить знания и освоить Composition API для крупных проектов.
👉Регистрируйтесь и получите скидку на обучение «JavaScript Developer. Professional»: https://vk.cc/cKq8sh
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
💬 Добавление поддержки нескольких языков в NestJS и Angular приложениях
В этой статье я добавлю поддержку нескольких языков в NestJS и Angular приложениях, для сообщений в ошибках, уведомлениях и данных полученных из базы данных.
Читать...
📈 Подборка статей для вашей карьеры
• История: работа в чешском Red Hat
• Циничные заметки о карьере в IT от «гейткипера»
• Рецензия на книгу “Изучаем паттерны проектирования JavaScript, 2-е издание”
• Всероссийский рейтинг IT-брендов работодателей 2024
• Моя петиция EB-1A на грин-карту талантов, одобренная с первой попытки
26–27 апреля проводим Weekend Offer Frontend
Устроиться в Яндекс за выходные — реально. Ищем крутых фронтендеров с опытом работы от 4 лет, готовых работать в офисном или гибридном режиме в России.
Подавайте заявку до 23 апреля — и всего за два дня пройдите все технические собеседования. После сможете пообщаться с нанимающими менеджерами и выбрать из 10 команд ту, которая покажется самой интересной. Если всё сложится хорошо, сразу же пришлём вам офер.
Узнать подробности и зарегистрироваться.
👩💻 Как сделать невероятно быстрый многопоточный Data Grid на 1 000 000 строк. Часть 1/2: нюансы работы с DOM
Статья объясняет, как создать невероятно быстрый многопоточный Data Grid на 1 000 000 строк с использованием Vanilla JavaScript. Рассматриваются нюансы работы с DOM для повышения производительности.
Читать...
⚙️ Что такое os
модуль в Node.js и как он используется?os
— это встроенный модуль в Node.js, который предоставляет информацию о операционной системе, включая архитектуру, платформу, память и данные о процессорах. Он полезен для написания кросс-платформенных приложений и мониторинга системы.
➡️ Пример:
const os = require('os');
console.log('Платформа:', os.platform()); // Выводит платформу, например 'linux'
console.log('Архитектура:', os.arch()); // Выводит архитектуру, например 'x64'
console.log('Свободная память:', os.freemem()); // Количество свободной памяти
🗣️ В этом примере модуль os используется для получения базовой информации об операционной системе. Это удобно для настройки приложений под конкретные системные параметры.
📆 Как я создал Vanilla Calendar Pro — легкий и гибкий календарь на JavaScript с использованием TypeScript
Статья рассказывает о создании Vanilla Calendar Pro — датапикера, собравшего 480+ звезд на GitHub. Описывается путь от первого опыта в open source до популярного инструмента, востребованного разработчиками.
Читать...
👩💻 Обзор наследования в JavaScript
Статья изучает шаблоны наследования в JavaScript, основанные на прототипах. Рассматриваются их уникальные особенности и применение, чтобы выбрать наиболее подходящий подход для задач.
Читать...
💬 Различные (и современные) способы переключения контента
Давайте уделим немного времени рассмотрению Dialog API, Popover API и остальных. Рассмотрим, когда лучше использовать каждый из них в зависимости от требований. Модальные или немодальные? JavaScript или чистый HTML/CSS? Не уверены? Не волнуйтесь, мы разберёмся во всём этом.
Читать...
👩💻 Испортили git rebase?
Git rebase — мощный инструмент, помогающий перенести или объединить один, или несколько коммитов в новый базовый коммит, переписав историю проекта так, чтобы ваша ветка выглядела созданной из другого коммита. Он помогает поддерживать более чистую и линейную историю.
Читать...
👩💻 Расширения VSCode для комфортной работы с проектами
В статье рассказывается, как настроить рабочее пространство VSCode для разработки. Обзор полезных расширений, которые повышают удобство и продуктивность, и советы по их применению.
Читать...