Node.js Backend | YeaHub – Telegram
Node.js Backend | YeaHub
499 subscribers
165 photos
15 videos
414 links
Теория, подготовка к интервью и курсы для Node.js разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
😎 Event Loop в Node.js

Event Loop — это сердце всей асинхронности: он решает, когда выполнять твой код, когда обрабатывать коллбеки и когда отдавать управление дальше. За последовательность выполнения отвечают фазы эвент лупа

🙂 Фазы event loop
1) Timers
Сюда попадают коллбеки setTimeout и setInterval. Но! Выполняются они не строго по миллисекундам, а когда цикл доберётся до этой фазы

2) Pending callbacks
Выполняются отложенные системные коллбеки (например, ошибки из сетевых операций)

3) Idle, prepare
Внутренние операции, используемые самой платформой Node.js

4) Poll
Самая важная фаза: тут обрабатываются новые I/O события (сокеты, файлы, сетевые запросы). Если работы нет — Node может подождать

5) Check
Фаза для setImmediate. Все такие коллбеки выполняются именно тут, сразу после poll

6) Close callbacks
Закрытия соединений (socket.on('close') и т.п.)



🍴 Microtasks: process.nextTick & Promises
Есть ещё «микрозадачи», которые выполняются между фазами
1) process.nextTick — выполняется даже раньше, чем промисы
2) Промисы (.then/.catch/finally) — выполняются сразу после текущей операции, до перехода к следующей фазе.

😱 setTimeout vs setImmediate
Иногда спрашивают: «Что быстрее — setTimeout(..., 0) или setImmediate?»
— setTimeout(..., 0) попадает в фазу timers, то есть выполнится на следующем проходе цикла
— setImmediate идёт в фазу check, сразу после poll

На практике setImmediate обычно срабатывает раньше, особенно после I/O операций

🚀 Пост Guru Node.js: @DemetraIT
Please open Telegram to view this post
VIEW IN TELEGRAM
4🏆3🔥2
#Собес #git
🤔 Какой язык используется Git?

💬 Кратко:
Git написан на языке программирования С. Этот выбор обеспечивает высокую производительность и эффективность.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😵 bknd — проект, который предоставляет решения для быстрого создания серверной инфраструктуры и бэкенда для мобильных приложений и веб-сервисов!

Это платформа для упрощения работы с бэкендом, обеспечивающая API для обработки пользователей, данных и аутентификации, а также другие серверные функции. Этот репозиторий направлен на разработчиков, которые хотят быстро создавать серверную часть своих приложений без необходимости писать серверный код с нуля.

Основные особенности проекта включают простоту интеграции, поддержку аутентификации и управления пользователями, а также возможность работы с реальным временем и уведомлениями.
Github

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #nodejs
🤔 Что такое Node.js?

💬 Кратко:
Node.js - это серверная платформа для выполнения JavaScript вне браузера, построенная на движке V8 от Google. Она позволяет писать серверные приложения, используя JavaScript, благодаря своей асинхронной и событийно- ориентированной архитектуре. Node. js чаще всего используют для создания веб-серверов и обработки запросов в реальном времени.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
👋 Паттерны для эффективного манипулирования DOM с ванильным JavaScript

В руководстве рассматриваются такие шаблоны работы с DOM на JavaScript, как выбор правильного querySelector, кэширование элементов и улучшение обработки событий.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😇 Работа с графикой: использование библиотеки Canvas для рисования и визуализации данных

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

Canvas - это элемент HTML5, который позволяет рисовать графику с помощью JavaScript. Он предоставляет API для создания и управления контекстом рисования, на котором можно рисовать линии, фигуры, текст и многое другое.

В данном примере мы получаем контекст рисования Canvas с помощью метода getContext(). Затем мы используем методы контекста, такие как fillRect() для рисования прямоугольника, stroke() для рисования линии и fillText() для рисования текста.

Мы также можем устанавливать различные свойства контекста, такие как цвет заливки (fillStyle), цвет обводки (strokeStyle), толщина линии (lineWidth) и шрифт (font).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
❤️‍🔥 Пишем Realtime для Multiple-page application в микросервисной архитектуре

Статья рассказывает, как в MPA на микросервисной архитектуре избежать потерь сообщений при перезагрузке страницы. Рассматривается метод повторной отправки пропущенных WebSocket-сообщений.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #nodejs
🤔 Какие типы приложений можно создавать с помощью Node.js?

💬 Кратко:
С помощью Node js можно создавать серверные приложения, такие как веб-серверы, REST API, чаты в реальном времени, инструменты для разработки (например, сборщики) и даже десктопные приложения через Electron.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 Promises-Training — практикуй промисы в JavaScript

Promises-Training — это коллекция упражнений по промисам с автоматическими тестами, где можно прокачать работу с async/await, .then/.catch, конкурентным выполнением и ограничением параллельности.

Почему полезно:
🔵 Пошаговый рост сложности: от простых примеров до нетривиальных сценариев.
🔵 Автотесты сразу показывают, правильно ли решена задача.
🔵 Хорошо подходит, чтобы глубже понять асинхронность и промисы.
🔵 Есть упражнения по реальным случаям: parallelMaxConcurrency, concurrencyOverride, extractingResolvers и др.

📦 Как начать:

npm create promises-training@latest


Запуск проверки конкретного упражнения:

npm run check <category>/<exercise>

Итог: отличный способ на практике закрепить работу с промисами и уверенно освоить асинхронность в JS.
Лежит тут: https://github.com/henriqueinonhe/promises-training

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🎶 Dependency Injection в Nest.js

DI — это то, что позволяет проекту оставаться масштабируемым и удобным. Вместо того чтобы руками создавать объекты, мы говорим фреймворку: «подкидывай зависимости сам»

🕺 Базовая идея
В Nest.js всё крутится вокруг провайдеров. Любой сервис, репозиторий или клиент можно зарегистрировать и потом внедрять в другие классы через конструктор

@Injectable()
export class UsersService {
constructor(private readonly repo: UsersRepo) {}
}


Nest сам найдёт UsersRepo, создаст его экземпляр и передаст в сервис

📦 Scopes (области жизни провайдера)
Нередко спрашивают на собесах, поэтому важно запомнить все скоупы

По умолчанию все провайдеры singleton — один экземпляр на всё приложение. Но иногда этого мало.

Nest поддерживает три области жизни:
1) Singleton (по умолчанию) — создаётся один раз при старте приложения
2) Request — новый экземпляр для каждого входящего запроса.
3) Transient — новый экземпляр при каждом внедрении

Request и Transient будут дороже по памяти, особенно под нагрузкой

🚀 Пост Guru Node.js: @DemetraIT
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2
#Собес #nodejs
🤔 Назовите преимущества Node.js перед другими фреймворками.

💬 Кратко:
Преимущества Node.js:
1. Скорость - благодаря движку V8.
2. Асинхронность - обработка большого количества запросов без блокировки.
3. JavaScript - единый язык для фронтенда и бэкенда.
4. Масштабируемость - подходит для высоконагруженных приложений.
5. Большая экосистема - npm предоставляет множество готовых модулей.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Immich Drop Uploader - простой загрузчик для вашего Immich сервера

Легкое веб-приложение без регистрации для загрузки фото и видео на Immich. Поддерживает очередь загрузки, предотвращение дубликатов и сохранение оригинальных дат. Идеально подходит для мобильных устройств и обеспечивает конфиденциальность.

Основные моменты:
- Никаких аккаунтов — просто перетащите файлы
- Поддержка очереди с прогрессом через WebSocket
- Автоматическое добавление в альбом
- Темная тема и мобильная адаптация
- Легкая конфигурация через .env и Docker

GitHub: https://github.com/Nasogaa/immich-drop

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Умное преобразование чисел с плавающей точкой

nstr автоматически исправляет проблемы с точностью чисел, улучшая отображение в интерфейсах. Забудьте о некорректных значениях, таких как 0.30000000000000004 — теперь ваши числа выглядят аккуратно и правильно.

Основные моменты:
🔵 Умное определение точности для чисел
🔵 Чистое отображение в UI-компонентах
🔵 Поддержка пользовательских настроек точности
🔵 Простой в использовании и интеграции
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Работа с локальным хранилищем

localStorage позволяет хранить данные на стороне клиента (в браузере). Методы setItem() используются для записи данных, getItem() для чтения данных и removeItem() для удаления данных из локального хранилища.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #nodejs
🤔 Что такое Event Loop и Event Emitter?

💬 Кратко:
Event Loop - это механизм в Node.js, который позволяет выполнять асинхронные операции без блокировки потока. Он управляет событиями и задачами, помещая их в очередь. Event Emitter - это объект, который позволяет создавать и обрабатывать события, используя методы .emit() и .on() -

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Обход защиты от ботов с помощью браузерного отпечатка

Этот репозиторий предлагает решения для обхода анти-бот защит при веб-скрапинге. Он включает советы и инструменты для создания незаметных ботов, которые могут эффективно взаимодействовать с различными веб-сайтами, минимизируя риск блокировки.

Основные моменты:
- Стратегии обхода защиты от ботов
- Рекомендации по использованию прокси и сервисов
- Подходы к созданию естественных браузерных отпечатков
- Инструменты для работы с JavaScript-детекцией
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Как декораторы могут упростить разработку веб-форм

В статье я буду писать о подходе, использующем библиотеку MobX. Так что если вы в своих проектах её не используете, статья может быть не так полезна. Но вы можете рассматривать её, как возможный источник вдохновения по тому, как можно разрабатывать формы.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Умный мост между LSP и GitHub Copilot

Расширение для Visual Studio Code, которое интегрирует возможности любого сервера языков (LSP) с инструментами Model Context Protocol (MCP) и GitHub Copilot. Это решение улучшает взаимодействие с кодом, позволяя Copilot более эффективно находить объекты и предоставлять контекстные подсказки.

Основные моменты:
🟢 Поддержка любого языка с активным LSP в VSCode
🟢 Интеллектуальная навигация по кодовой базе
🟢 Контекстные предложения и анализ кода
🟢 Автоматическое улучшение ответов GitHub Copilot
🟢 Интуитивно понятные инструменты для работы с кодом
GitHub: https://github.com/sehejjain/Language-Server-MCP-Bridge

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🍴 Constraints в базах данных

⚙️ Что такое constraint

Constraint — это ограничение, которое накладывается на данные в таблице, чтобы они оставались корректными и логичными.
Он работает на уровне БД, а не приложения — то есть защищает данные даже если код на бэке с багулей

🫵 Основные типы

1. PRIMARY KEY и FOREIGN KEY
2. UNIQUE — не даёт вставить дубликат

💡 Пример:
email в таблице пользователей должен быть уникальным.

3. NOT NULL — запрещает NULL, гарантирует, что поле обязательно заполнено

4. CHECK — позволяет задать собственное логическое условие

💡 Пример:
CHECK (age >= 18) — в базу не попадёт несовершеннолетний.


🚀 Пост Guru Node.js: @DemetraIT
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥2