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

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

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

Для связи: @ruslan_kuyanets
Download 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
#Собес #git
🤔 Какие различные стратегии ветвления вы знаете?

💬 Кратко:
Централизованный рабочий процесс (Centralized Workflow). Веткой разработки по умолчанию является main, и все изменения фиксируются в этой ветке. Этот рабочий процесс не требует других веток, кроме главной.

Рабочий процесс разветвления функций (Feature Branching Workflow). Основная идея рабочего процесса разветвления функций заключается в том, что разработка всех функций должна вестись в специальной ветке, а не в основной.

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

Рабочий процесс Forking. Forking Workflow принципиально отличается от других популярных рабочих процессов Git. Вместо того чтобы использовать единый серверный репозиторий в качестве "центральной" кодовой базы, он предоставляет каждому разработчику свой серверный репозиторий. Это означает, что каждый участник имеет не один, а два Git-репозитория: частный локальный и публичный серверный. Чаще всего Forking Workflow встречается в публичных проектах с открытым исходным кодом.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👋 Как за 10 минут создать тестировщик нагрузки для API на Node.js

Почему разработка собственного инструмента для нагрузки на API иногда оказывается лучшим выбором? В статье обсуждается реальный кейс: задачи тестирования производительности, ограничения Postman и сложность JMeter. Узнайте, как и зачем был создан простой и эффективный API-лоадер на Node.js.
Читать...

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
#Собес #nodejs
🤔 Что такое V8? Как это работает?

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

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

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

Nano Banana Infinimap — экспериментальный генератор карт, использующий ИИ для создания бесшовных тайлов. Проект демонстрирует возможности модели Nano Banana, позволяя генерировать огромные карты с учетом соседних тайлов.

Основные моменты:
🔵 Бесконечные карты с навигацией на базе Leaflet
🔵 Генерация тайлов с использованием модели Google Nano Banana
🔵 Учет соседних тайлов для плавных краев
🔵 Локальное хранение данных

GitHub: https://github.com/seezatnap/nano-banana-infinimap

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Чистая архитектура фронтенд-приложений

Чистая архитектура фронтенд-приложений — это подход к организации кода, чтобы приложение было простым в поддержке, тестировании и масштабировании. Его цель — разделить логику приложения на слои, чтобы изменения в одном слое минимально влияли на другие. Продолжаем делиться циклом статей, где автор дает советы по организации чистой архитектуры.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор Promise

Promise — это встроенный в JavaScript объект, который описывает результат асинхронной операции. Асинхронной считается операция, которая выполняется не сразу, а через какое-то время. Чем полезен promise – узнаешь из этого видео.

👀Смотреть видео

#видео
1
#Собес #git
🤔 Как вы разрешаете конфликты в Git?

💬 Кратко:
Конфликты возникают, когда изменения из удаленного и локального репозиториев пересекаются. Чтобы разрешить конфликт, нужно вручную отредактировать проблемные файлы, выбрать правильную версию, а затем зафиксировать изменения.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 Window Mode: Погружение в 3D мир через веб-камеру

Window Mode — это демонстрация 3D-камерного контроллера, который создает иллюзию окна в виртуальный мир. С помощью отслеживания положения лица пользователя, проектируется 3D-сцена, создавая эффект присутствия. Работает с любыми 3D-видео и не требует специального оборудования.

Основные моменты:
🟠 Эмуляция окна в 3D пространстве.
🟠 Использует MediaPipe для отслеживания лица.
🟠 Поддержка форматов .vv и .splv для 3D-сцен.
🟠 Реализация на NextJS с использованием веб-воркеров.
🟠 Ожидается открытие исходников библиотек.

GitHub: https://github.com/True3DLabs/WindowMode

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое DLQ в микросервисах 🙃

Dead Letter Queue — это “очередь для неудачных сообщений”
Когда микросервис не может обработать сообщение после нескольких попыток, оно не удаляется и не крутится бесконечно, а попадает в DLQ

😐 Зачем это нужно
— чтобы не блокировать основную очередь
— чтобы можно было позже разобраться, почему сообщение не обработалось
— чтобы при необходимости повторно отправить сообщение вручную или автоматически

📦 Пример
Допустим, у тебя есть очередь orders, и воркер обрабатывает заказы.
Если из-за ошибки воркер несколько раз подряд не смог обработать заказ, сообщение попадёт в orders.DLQ.
Туда можно подключить отдельный обработчик или просто просматривать ошибки

Еще советую добавить Alert на метрику, когда сообщений в очереди больше одного 😇

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