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
#статьи
😱 Кэширование информации в Redis на NestJS

Статья показывает, как подключить Redis к проекту и настроить кэширование данных с помощью @nestjs-mod/cache-manager. Рассматриваются примеры работы с Docker Compose и Kubernetes для оптимизации запросов.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
😐 Неожиданное возвращение: легендарный Smalltalk-80 обрёл новую жизнь в мире JavaScript.

Теперь это бесплатная и опенсорсная реализация, которая компилируется в JS и работает как в браузере, так и в Node.js. Сохраняется дух полностью объектно-ориентированного Smalltalk, но с привычным синтаксисом и экосистемой JS.

🟠 Вместо «имиджей» используется файловая структура — удобно писать в VS Code
🟠 Подсветка кода и отладка доступны сразу «из коробки»
🟠 Классы и методы максимально близки к JavaScript, поэтому порог входа минимален
🟠 Встроены браузерные API, Express, базы данных, файловая система и даже многопоточность

Еще недавно появилась поддержка NW.js, так что теперь можно собирать кроссплатформенные десктопные приложения с интерфейсами на HTML+CSS — легче и менее прожорливо, чем на Electron.

Подробнее и с примерами: https://small-js.org/

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#статьи
😬 Отслеживание позиций торгового робота Московской биржи через CSV файл

Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...

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

💬 Кратко:
Docker Compose - это инструмент для управления многоконтейнерными приложениями. С помощью простого YAML-файла ( docker-compose. yml ) можно настроить и запустить несколько контейнеров, определяя их сервисы, сети и тома.

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

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

С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.

Основные моменты:
🔴 Два режима просмотра: Человеческий и LLM
🔴 Подсветка синтаксиса и рендеринг Markdown
🔴 Умное фильтрование больших файлов
🔴 Адаптивный дизайн для мобильных устройств
🔴 Удобная навигация по файлам
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Thread Pool в Node.js 🙂

Node.js у нас вроде как “однопоточный”, да? Но это не значит, что у него под капотом нет магии. Помимо Event Loop, в деле ещё участвует thread pool — набор рабочих потоков, которыми управляет библиотека libuv

🐧 Сколько потоков?
По умолчанию их 4. Но если хочется больше — можно поднять значение переменной окружения UV_THREADPOOL_SIZE (максимум до 1024)

😳 Зачем он нужен?
Thread pool берёт на себя тяжёлые и блокирующие задачи, чтобы не нагружать Event Loop. Туда скидываются:
1) операции с файловой системой (fs)
2) криптография (hash, pbkdf2 и т.п.)
3) DNS-резолвы
4) компрессия/декомпрессия

И пока отдельный поток уничтожает задачки — твой основной поток (event loop) спокойно крутит коллбеки и промисы

⌨️ Можно ли к тред пулу обратиться самому?
Напрямую нет, но можешь использовать нативные API (fs, crypto и т.д.), которые уже завязаны на thread pool. А вот если подключаешь native addon (N-API или Nan), то да, там можно регистрировать асинхронные задачки через uv_queue_work. И тогда твой C++ код действительно будет выполняться в thread pool

Кста не путать тред пул и worker_threads — это совсем другой инструмент

В итоге: Node.js сам решает, что кидать в thread pool, но знать о инсутрменте полезно, чтобы понимать почему работа с криптографией не блокирует наш основной поток эвент лупа

🚀 Пост Guru Node.js: @DemetraIT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
#Собес #docker
🤔 Можно ли потерять данные, если контейнер существует?

💬 Кратко:
Пока контейнер существует, данные не теряются. Потеря данных может произойти только при удалении контейнера, если данные не были сохранены в постоянном хранилище.

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

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

Примеры использования элементов thead, tbody и tfoot в HTML

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
21
#Собес #docker
🤔 Как удалить все остановленные контейнеры и неиспользуемые сети в Docker?

💬 Кратко:
Для удаления всех остановленных контейнеров и неиспользуемых сетей используется команда docker system prune . Она также удаляет неиспользуемые образы и кэш.

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

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

Покажу, как собрать «большое» приложение из независимых модулей (~200 строк) с помощью ИИ: стабильные промпты, чат вместо агентов, бэкенд в Yandex Cloud. Плюсы и грабли.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
🥄 Решаем задачу: как сохранить нервные клетки пользователей с помощью валидации поля ввода

В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно. 
Решить проблему могла бы валидация. Это критически важная часть разработки веб-приложений, которая соотносит данные с необходимым форматом и указывает на ошибки. Также она гарантирует безопасность дальнейшей обработки этих данных. 
В этой статье мы разберёмся, как настроить валидацию поля ввода.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🛞 Вызов функции через eval

eval вызывает функцию по её имени, заданному в functionName, и передаёт ей аргумент argument. В данном случае вызывается функция greet с аргументом "Alice".

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️ С чего начать? → Всё самое важное здесь

Guru Node.js at YeaHub | Деметра 👩‍💻

Всем привет!
Я — Дима, Senior Backend разработчик на Node.js и ментор 🎶

В IT больше 6 лет: шикарно перекладываю json’ы в микросервисах. Поднял стартап с нуля до продакшена под высокой нагрузкой. Сейчас работаю в крупной компании и активно участвую в найме (провожу собеседования)

Менторю по Node.js — помогаю прокачаться, разложить backend по полочкам и выйти на работу мечты. Особенно люблю фронтов, которые решили перебраться на тёмную сторону 😇

А ещё я Guru Node.js в YeaHub — слежу за качеством контента и всей экосистемой

✈️ Мой блог в Telegram

А ещё подписывайтесь на другие каналы Экосистемы YeaHub

Проект YeaHub:

🚀 YeaHub | 🖥 GitHub | ✈️ Telegram

🎵 TikTok | 📹 YouTube | 👥 Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥32
#Собес #docker
🤔 Как удалить Docker-контейнер?

💬 Кратко:
Чтобы удалить Docker-контейнер, используйте команду docker rm c указанием ID или имени контейнера. Пример: docker rm mycontainer удаляет контейнер с именем mycontainer .

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

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

Фишингом угнали npm-аккаунт мейнтейнера qix и пушнули апдейты в 18 ключевых пакетов (chalk, debug, strip-ansi, color-convert и др.) — суммарно это ~2,6 млрд загрузок в неделю.
В обновления вставили браузерный крипто-«клиппер»: на сайтах/в приложениях с уязвимыми версиями он перехватывает трафик и подменяет адреса кошельков.

Скомпрометированные версии — удалить немедленно из всех сред (локальные машины разработчиков, CI/CD, прод):

ansi-styles@6.2.2
debug@4.4.2
chalk@5.6.1
supports-color@10.2.1
strip-ansi@7.1.1
ansi-regex@6.2.1
wrap-ansi@9.0.1
color-convert@3.1.1
color-name@2.0.1
is-arrayish@0.3.3
slice-ansi@7.1.1
color@5.0.1
color-string@2.1.1
simple-swizzle@0.2.3
supports-hyperlinks@4.1.1
has-ansi@6.0.1
chalk-template@1.1.1
backslash@0.2.1
error-ex@1.3.3



Что стоит сделать:
🟠Удалить уязвимые версии из дерева зависимостей, пересобрать и задеплоить исправления.
🟠Проверить lock-файлы (package-lock.json, yarn.lock, pnpm-lock.yaml) и node_modules на присутствие перечисленных версий.
🟠 Очистить кэш менеджера пакетов: npm cache clean --force, yarn cache clean, pnpm store prune.
🟠 Переустановить зависимости с нуля (удалив node_modules и lock-файлы) и заново зафиксировать версии.
🟠 Пересобрать фронтенд-бандлы, инвалидировать CDN/кэши, перезапустить рантаймы.
🟠 Проверить логи на внешние запросы из бандла, провести аудит внесённых PR/коммитов.
🟠 Ротировать ключи/токены, если могли утечь, и ужесточить 2FA/доступ к npm.
Разбор атаки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤯1
😋 Жизненный цикл запроса в Nest.js

Nest.js обмазан синтаксическим сахаром: пишешь @Controller, @Get — и всё работает. Но под капотом у каждого запроса есть целая цепочка этапов. Давай разберёмся, кто первый встречает твой запрос, а кто последний

Вопрос частый на собесах, рекомендую внимательно прочитать 😇

💐 Middleware
Самый первый уровень. Тут можно переписать req, добавить хедеры, логировать. По сути — «до Nest-а». Работают так же, как в Express/Fastify

😱 Guard’ы
Самые первые на пути. Проверяют, можно ли вообще пропустить запрос дальше (авторизация, роли, доступ). Если guard сказал «нет» — дальше никто не работает.

☺️ Interceptor (до вызова)
Может подменить данные запроса или добавить что-то в контекст. Часто используют для логирования или кэширования.

😳 Pipe’ы
Проверяют и трансформируют входные данные (валидаторы, касты типов). Например, ParseIntPipe превратит строку id в число. Если данные грязные — кидают ошибку и обрубают цикл.

🐱 Controller
Тут твой метод с бизнес-логикой

🪢 Interceptor (после вызова)
Может преобразовать ответ перед тем, как он уйдёт клиенту (например, обернуть результат в единую структуру ответа) — удобно для фронтов

🟩 Exception Filter
Если где-то в цепочке бахнуло исключение — фильтр красиво его поймает и вернёт красивый ответ вместо 500-ки. Тоже удобно для фронтов, чтобы можно было вывести ошибку



Итоговый маршрут:
Middleware → Guard → Interceptor (до) → Pipe → Controller → Interceptor (после) → Exception Filter

🚀 Пост Guru Node.js: @DemetraIT
Please open Telegram to view this post
VIEW IN TELEGRAM
3🏆3🔥2
#Собес #git
🤔 Что делает Git-клон?

💬 Кратко:
Команда git clone создаёт копию существующего репозитория, включая всю историю изменений, файлы и ветки. Это используется, чтобы начать работу с проектом, который уже находится в удалённом репозитории.

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

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

react-afc - библиотека для более простого (чем в простом react) уменьшения количества ненужных ререндеров дочерних компонентов.
Читать статью

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