Node.js Backend | YeaHub
393 subscribers
124 photos
12 videos
317 links
Теория, подготовка к интервью и курсы для Node.js разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#видео
🥺 CSS Flexbox: Обертка элементов с размерами

Продолжаем делиться циклом видео, благодаря которому ты научишься пользоваться технологией Flexbox. В этот раз речь идет про вложенность, а также обертку элементов с размерами.
📱 Смотреть видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 652. Find Duplicate Subtrees

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

Пример:
Input: root = [1,2,3,4,null,2,4,null,null,4]
Output: [[2,4],[4]]


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

1⃣Выполните обход дерева и используйте сериализацию для представления каждого поддерева.

2⃣Храните все сериализованные представления поддеревьев в хэш-таблице и отслеживайте частоту их появления.

3⃣Найдите поддеревья, которые появляются более одного раза, и верните корневые узлы этих поддеревьев.

😎 Решение:
function TreeNode(val, left, right) {
this.val = (val===undefined ? 0 : val)
this.left = (left===undefined ? null : left)
this.right = (right===undefined ? null : right)
}

var findDuplicateSubtrees = function(root) {
const count = new Map();
const result = [];

const serialize = (node) => {
if (!node) return "#";
const serial = `${node.val},${serialize(node.left)},${serialize(node.right)}`;
count.set(serial, (count.get(serial) || 0) + 1);
if (count.get(serial) === 2) {
result.push(node);
}
return serial;
};

serialize(root);
return result;
};


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Расскажите про все методы Promise?

Основные методы промиса включают: then() - для обработки успешного выполнения, catch() - для обработки ошибок, finally() - для выполнения кода по завершению промиса, независимо от результата. Есть также методы Promise.all(), Promise.race(), Promise.allSettled() И Promise.any() , которые позволяют работать с несколькими промисами одновременно.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Разработка драйверов

WebUSB — это API, предоставляемое браузером (в основном Chrome и Chromium-based), которое позволяет веб-приложениям напрямую взаимодействовать с USB-устройствами. Это особенно полезно, если у тебя есть кастомное устройство или, например, Arduino, и ты хочешь управлять им из браузера. Благодаря данной статье ты узнаешь, как можно создавать драйвера с помощью WebUSB.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Hoppscotch — это открытая платформа для разработки API, предназначенная для упрощения тестирования и взаимодействия с API!

Она предоставляет удобный и быстрый интерфейс для отправки HTTP-запросов и получения ответов в реальном времени. Поддерживаются различные HTTP-методы, включая GET, POST, PUT, PATCH, DELETE и другие. Платформа также предлагает настраиваемые темы оформления и возможность установки в виде прогрессивного веб-приложения (PWA).
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
❤️‍🔥 Typed Japanese

Для гиков: энтузиасты придумали учить языки через TypeScript.

Проект Typed Grammar учит грамматике (например, английского или японского) с помощью типов и структур программирования. И никаких зелёных сов!
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Что такое промисификация?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😱 Как создать Telegram bot для проверки электронной подписи

Показываю, как без строчки кода проверить электронную подпись прямо в Telegram через связку n8n и КриптоАРМ — без серверов, сложноты и лишних танцев.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Эффект подсветки карточки при наведении с использованием свойства background-attachment

Мы применяем background-attachment, чтобы зафиксировать фон относительно области просмотра
Тык сюда

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2
#полезное
👍 Что такое path модуль в Node.js и зачем он используется?

Модуль path встроен в Node.js и используется для работы с путями файловой системы. Он помогает безопасно объединять, нормализовать и парсить пути, независимо от операционной системы.

Пример

const path = require('path');

const fullPath = path.join(__dirname, 'images', 'logo.png');
console.log(fullPath); // Абсолютный путь до logo.png

const ext = path.extname(fullPath);
console.log(ext); // .png


Здесь path.join() склеивает путь с правильными разделителями (/ или \), а path.extname() извлекает расширение файла. Это упрощает работу с путями и предотвращает ошибки при кроссплатформенной разработке.
Подробнее тут

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес
🤔 Цепочка промисов. Что это и для чего?

Цепочка промисов позволяет последовательно выполнять несколько асинхронных операций. Каждый вызов then() может возвращать новый промис, который будет передан в следующий then() , что упрощает обработку сложных асинхронных задач.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Какой метод глубокого клонирования в JavaScript наиболее эффективный  —  исследование

Чтобы выделить "победителя" среди методов глубокого клонирования в JavaScript, необходимо протестировать каждый из них. Предлагаем результаты серии модульных тестов.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🛞 Yaak — это приложение для взаимодействия с API (REST, GraphQL, SSE, WebSocket, gRPC), разработанное с использованием Tauri, Rust и ReactJS!

Оно поддерживает импорт коллекций из Postman, OpenAPI, Swagger и других инструментов, а также предоставляет удобные функции авторизации (OAuth 2.0, JWT и т. д.), фильтрации ответов (JSONPath, XPath), организации рабочих пространств и использования переменных окружения.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
👨‍💻 RevShells — это сервис, предоставляющий пользователям возможность быстро создавать команды для обратных оболочек и соответствующие слушатели для различных операционных систем и сценариев!

Сайт поддерживает генерацию команд для Linux, Windows и Mac, а также предлагает выбор между различными типами оболочек и методов кодирования. Кроме того, RevShells.com интегрируется с инструментом HoaxShell, предоставляя дополнительные возможности для создания нестандартных обратных оболочек.
Гитхаб
Веб-версия

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Перечислите свойства и методы промисов?

Основные свойства промиса - это его состояние (pending, fulfilled, rejected). Методы промиса включают then() , который используется для обработки успешного результата, catch() для обработки ошибок и finally() для выполнения кода после завершения промиса, независимо от его исхода.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😵‍💫 8 советов, которые сделают JavaScript-код чище

Проблемный код, даже если он более или менее работает, требует больших затрат на поддержку. Отточить навыки создания чистого кода, хорошо читаемого и легко поддерживаемого, помогут 8 простых советов.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 Cypress + axe-core: быстрый старт тестов на доступность

Показываю, как быстро втащить тесты доступности в проект на Cypress с axe-core и TypeScript. Проверим контраст, aria-label, роли и alt, чтобы сделать интерфейс удобным не только для здоровяков.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Что такое Pino?

Pino — это очень быстрый и лёгкий логгер для Node.js. Он используется для того, чтобы удобно и эффективно выводить сообщения в консоль или лог-файл. Благодаря данной статье ты узнаешь, как максимально эффективно использовать Pino.
Читать статью

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

Промис (Promise) - это объект, представляющий результат асинхронной операции, который может завершиться успешно (с результатом) или с ошибкой. Промисы помогают избежать "callback hell" и позволяют писать асинхронный код в более управляемой и линейной форме.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️‍🔥 Шпаргалка по видам циклов в Javascript!

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