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
#полезное
🥄 turfjs — это javanoscript библиотека позволяющая выполнять пространственный анализ прямо в браузере или через node.js.

Проект включает более 200 модулей для различных операций с geojson от простых измерений расстояний до сложных геостатистических расчетов. Библиотека работает в современных браузерах и поддерживает актуальные версии node.js. Инструмент также имеет модульную структуру и активную аудиторию сообщества.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#статьи
🛞 Различные (и современные) способы переключения контента

Давайте уделим немного времени рассмотрению Dialog API, Popover API и остальных. Рассмотрим, когда лучше использовать каждый из них в зависимости от требований. Модальные или немодальные? JavaScript или чистый HTML/CSS? Не уверены? Не волнуйтесь, мы разберёмся во всём этом.
Читать...

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

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

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
#полезное
😱 Сократите свой CSS-код с помощью :where()

Используйте псевдокласс-функцию :where(), когда нужно применить одинаковые стили к нескольким элементам, не беспокоясь о том, что порядок селекторов повлияет на специфичность правил. Это простой способ сделать CSS более предсказуемым и удобным для поддержки.


/* Without :where() */
.container > h1,
.container > .card h1,
.container > .card:last-child {
border: 2px solid red;
padding: 10px;
}

/* With :where() */
.container > :where(h1, .card .h1, .card:last-child) {
border: 2px solid red;
padding: 10px;
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#статьи
👋 Ментальная модель потоков в Node.js

Статья исследует концепцию потоков в Node.js, объясняя их ключевую роль в модулях, таких как fs и http. Рассматриваются основные концепции и ментальная модель, помогающая понять и эффективно использовать потоки.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
❤️‍🔥 Как пересылать сообщения из Telegram в SMS с помощью бота

В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
#Собес #docker
🤔 Чем отличается логирование контейнера от логирования демона?

💬 Кратко:
Логирование на уровне демона касается самого процесса работы Docker (системных сообщений и ошибок), в то время как логирование контейнера фокусируется на выводе, генерируемом внутри конкретных контейнеров. Логи демона содержат информацию о работе Docker, а логи контейнера - данные, связанные с выполнением приложений в контейнерах.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Библиотека GeoAI.js теперь поддерживает Image Feature Extraction — поиск похожих объектов на спутниковых снимках.

Работает полностью локально в браузере благодаря Transformers.js.

https://docs.geobase.app/geoai-live/tasks/image-feature-extraction

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Browserable — открытый инструмент для автоматизации браузера с помощью AI-агентов.

Что делает:
🟠 Управляет браузером как человек: переходит по сайтам, кликает, заполняет формы, вытаскивает данные.
🟠 Достигает 90.4 % на тесте Web Voyager — один из лучших результатов среди подобных решений.
🟠 Работает локально (self-hosted) или через удалённые браузеры.
🟠 Запуск в 1 команду (`npx browserable`) или в полном окружении через Docker.
🟠 В комплекте: админ-панель, REST API, JavaScript/TypeScript SDK, интеграция с LLM (OpenAI, Claude, Gemini и др.).

Зачем полезно:
— Автопарсинг и мониторинг сайтов
— Автоматизация тестирования веб-приложений
— Интеграция с агентами для сложных сценариев в интернете
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#ЛитКод
Задача: 363. Max Sum of Rectangle No Larger Than K

Дана матрица размером m x n и целое число k, вернуть максимальную сумму прямоугольника в матрице, такая что его сумма не превышает k.

Гарантируется, что будет прямоугольник с суммой, не превышающей k.

Пример:
Input: matrix = [[1,0,1],[0,-2,3]], k = 2
Output: 2
Explanation: Because the sum of the blue rectangle [[0, 1], [-2, 3]] is 2, and 2 is the max number no larger than k (k = 2).


👨‍💻 Алгоритм:

1⃣Создать вспомогательную функцию updateResult, которая будет находить максимальную сумму подмассива в одномерном массиве, не превышающую k.

2⃣Преобразовать каждую подматрицу в одномерный массив и применить к ней функцию updateResult.

3⃣Вернуть максимальную найденную сумму.

😎 Решение:
class Solution {
constructor() {
this.result = Number.NEGATIVE_INFINITY;
}

updateResult(nums, k) {
let sum = 0;
const sortedSum = [0];

for (let num of nums) {
sum += num;
let idx = this.binarySearch(sortedSum, sum - k);
if (idx < sortedSum.length) {
this.result = Math.max(this.result, sum - sortedSum[idx]);
}
sortedSum.push(sum);
sortedSum.sort((a, b) => a - b);
}
}

binarySearch(arr, target) {
let left = 0, right = arr.length;
while (left < right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] < target) left = mid + 1;
else right = mid;
}
return left;
}

maxSumSubmatrix(matrix, k) {
const rows = matrix.length;
const cols = matrix[0].length;

for (let i = 0; i < rows; i++) {
let rowSum = Array(cols).fill(0);
for (let row = i; row < rows; row++) {
for (let col = 0; col < cols; col++) {
rowSum[col] += matrix[row][col];
}
this.updateResult(rowSum, k);
if (this.result === k) {
return this.result;
}
}
}
return this.result;
}
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #docker
🤔 Есть ли ограничения на количество контейнеров, которые можно запустить в Docker?

💬 Кратко:
B Docker нет явного ограничения на количество контейнеров. Ограничения зависят от аппаратных ресурсов, таких как обьем памяти и количество процессорных ядер.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#статьи
😱 Кэширование информации в 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