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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😊 Управление Node.js 19 и NPM 9 с помощью NVM

Статья знакомит с использованием NVM для управления версиями Node.js и npm, показывая примеры с Node.js 19 и npm 9. Объясняются преимущества NVM для безопасного обновления и тестирования новых возможностей.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤓 Какой метод отвечает за синхронное прочтение данных из файла?
Anonymous Quiz
5%
read()
38%
readFileSync()
21%
readFile()
17%
readSync()
19%
readFileAsync()
🔥1
#Вакансии
👨‍💻 Frontend разработчик React/ VueJS/ Angular, rest, docker

Локация: Удаленно
Компания: ИП Карташев
ЗП: обсуждается на собеседовании
Занятость: Проектная

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

🚩Обязанности
🟡Взять проект и довести до конца

🚩Что есть
🔵Макет, 7 однотипных страниц отрисованы в фигме
🔵 Документация к api
🔵 Отдельным документом логика вызова api

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

💬 Резюме отправлять: @imdeniil

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#собес
🤔 Перечислите способы объявления функции и особенность каждого?

B JavaScript функции можно объявлять несколькими способами: через function declaration, function
expression
, стрелочные функции (arrow functions), и методы в объектах. Каждый из этих способов
имеет свои особенности: function declaration подвержены "поднятию" (hoisting), function expression
нет, а стрелочные функции не имеют своего контекста this.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
Media is too big
VIEW IN TELEGRAM
#полезное
🤯 Визуализация JavaScript - цикл событий, веб-интерфейсы, очередь (микро)задач

Видео объясняет, как работает однопоточная природа JavaScript, включая стек вызовов, Web API, очереди задач и микрозадач, а также переход от обратных вызовов к промисам
Смотреть видео

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3
🤓 Какой модуль отвечает за события?
Anonymous Quiz
64%
event
5%
util
5%
util и events
25%
events
🔥2👍1
#ЛитКод
Задача: 311. Sparse Matrix Multiplication

Даны две разреженные матрицы mat1 размером m x k и mat2 размером k x n. Верните результат перемножения матриц mat1 x mat2. Вы можете предположить, что умножение всегда возможно.

Пример:
Input: mat1 = [[1,0,0],[-1,0,3]], mat2 = [[7,0,0],[0,0,0],[0,0,1]]
Output: [[7,0,0],[-7,0,3]]


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

1⃣Инициализация результирующей матрицы
Создайте результирующую матрицу result размером m x n, заполненную нулями.

2⃣Хранение ненулевых элементов
Пройдите по каждой строке матрицы mat1 и сохраните индексы и значения ненулевых элементов в хеш-карте mat1_map. Пройдите по каждой колонке матрицы mat2 и сохраните индексы и значения ненулевых элементов в хеш-карте mat2_map.

3⃣Вычисление произведения
Для каждой строки i в mat1 и для каждой колонки j в mat2: Если в mat1_map есть ненулевой элемент в строке i и в mat2_map есть ненулевой элемент в колонке j с одинаковым индексом k, добавьте произведение этих элементов к result[i][j].

😎 Решение:
var multiply = function(mat1, mat2) {
let n = mat1.length;
let k = mat1[0].length;
let m = mat2[0].length;

let ans = Array.from({ length: n }, () => Array(m).fill(0));

for (let rowIndex = 0; rowIndex < n; rowIndex++) {
for (let elementIndex = 0; elementIndex < k; elementIndex++) {
if (mat1[rowIndex][elementIndex] !== 0) {
for (let colIndex = 0; colIndex < m; colIndex++) {
ans[rowIndex][colIndex] += mat1[rowIndex][elementIndex] * mat2[elementIndex][colIndex];
}
}
}
}

return ans;
};


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#собес
🤔 Что такое стрелочные функции и чем они отличаются от обычных функций?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
#полезное
😊 Кэширование информации в Redis на NestJS

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤓 Как записать асинхронно данные в файл?
Anonymous Quiz
12%
fs.writeFileSync()
14%
fs.write()
4%
fs.writeSync()
53%
fs.writeFileAsync()
18%
fs.writeFile()
👍2🫡2
#вакансии
👨‍💻 JS React разработчик
Компания: Kvando Technologies
ЗП: 130.000 - 150.000 руб. (обсуждается)
Локация: удаленно, только из РФ
Формат: full-time.

🚩Что нужно знать и уметь
🔵 Опыт коммерческой разработки фронтенда не менее 2-х лет;
🔵 Опыт разработки на React и TypeScript не менее 2-х лет;
🔵 Уверенное знание HTML, CSS, JavaScript;
🔵 Знания DRY/KISS, SOLID, YAGNI, ООП, Шаблонов проектирования, PWA, SPA;
🔵 Умение работать с Docker;
🔵 Опыт работы с микрофронтендами ( будет преимуществом );
🔵 Опыт работы с веб-сервисами (REST, WebSocket);
🔵 Опыт использования GitLab, Jira, Confluence или других подобных инструментов;
🔵 Опыт написания тестов.

🚩Мы предлагаем:
🟡 Удаленный формат в РФ
🟡 Оформление по ИП
🟡 Разные проекты на выбор.
🟡 График 5/2 с 9-18:00 по мск. времени (плавающее начало дня);

tg:@Evgenya_kiseleva
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2
#собес
🤔 Что такое замыкания в JavaScript и почему они важны?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🤔 Какой метод JavaScript является частью Web API и предоставляет функционал для немедленного прерывания выполнения скрипта?
Anonymous Quiz
45%
document.terminate()
39%
window.stop()
0%
navigator.halt()
16%
location.abort()
4
🤓 Какая библиотека облегчает работу с сервером?
Anonymous Quiz
77%
Express
13%
NPServer
7%
Такой библиотеки нет
3%
EJS
2
#ЛитКод
Задача: 563. Binary Tree Tilt

Дано корневое значение бинарного дерева. Вернуть сумму значений наклонов всех узлов дерева.

Наклон узла дерева - это абсолютная разница между суммой всех значений узлов левого поддерева и всех значений узлов правого поддерева. Если у узла нет левого потомка, то сумма значений узлов левого поддерева считается равной 0. То же правило применяется, если у узла нет правого потомка.

Пример:
Input: root = [1,2,3]
Output: 1
Explanation:
Tilt of node 2 : |0-0| = 0 (no children)
Tilt of node 3 : |0-0| = 0 (no children)
Tilt of node 1 : |2-3| = 1 (left subtree is just left child, so sum is 2; right subtree is just right child, so sum is 3)
Sum of every tilt : 0 + 0 + 1 = 1


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

1⃣Определите рекурсивную функцию, которая вычисляет сумму значений узлов поддерева и наклон текущего узла.

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

3⃣Верните общую сумму наклонов всех узлов.

😎 Решение:
class TreeNode {
constructor(val = 0, left = null, right = null) {
this.val = val;
this.left = left;
this.right = right;
}
}

class Solution {
findTilt(root) {
let totalTilt = 0;

function sumAndTilt(node) {
if (node === null) {
return 0;
}
const leftSum = sumAndTilt(node.left);
const rightSum = sumAndTilt(node.right);
const nodeTilt = Math.abs(leftSum - rightSum);
totalTilt += nodeTilt;
return node.val + leftSum + rightSum;
}

sumAndTilt(root);
return totalTilt;
}
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#собес
🤔 Перечислите все способы копирования объектов

Объекты можно копировать несколькими способами. Поверхностное копирование можно сделать с
помощью Object. assign() , оператора распространения { ...obj } , а для глубокого копирования
часто используют JSON. parse (JSON. stringify(obj)) . Поверхностная копия копирует только
верхний уровень свойств, в то время как глубокая копия копирует все уровни объекта, включая
вложенные.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤔 Какое свойство объекта window в JavaScript позволяет обратиться к истории сессии браузера пользователя?
Anonymous Quiz
45%
window.session
47%
window.history
2%
window.paths
6%
window.navigation
1
#полезное
😊 Четыре пункта, как улучшить код Backend стажера

В статье разобраны распространенные проблемы в коде начинающих разработчиков с конкретными решениями: грамотная инъекция зависимостей, использование Scoped-сервисов, паттерн Generic Repository и создание Stateless-классов.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
🤔 Какой метод JavaScript позволяет динамически загружать модули в приложении, обеспечивая более эффективное разделение кода?
Anonymous Quiz
8%
System.import()
31%
require()
55%
import()
6%
loadModule()
3
#собес
🤔 Перечислите основные методы объектов

Основные методы объектов включают Object. keys() , который возвращает массив ключей объекта, Object.values ( ) , который возвращает массив значений объекта, и Object. entries() , который возвращает массив пар ключ-значение. Также есть Object. assign ( ) , который используется для копирования объектов, и Object. freeze () , который "замораживает" объект, предотвращая его дальнейшее изменение.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#вакансии
👨‍💻 JS (React) developer

Локация: Удалённо в РФ
Компания: Kvando Technologies
ЗП: от 110 000 до 150 000 р. на руки
Занятость: Полная

🚩Что нужно знать и уметь
🔵 Опыт коммерческой разработки фронтона не менее 2-х лет;
🔵 Опыт разработки на React не менее 2-х лет;
🔵 Опыт разработки на TypeScript не менее 2-х лет;
🔵 Знания DRY/KISS, SOLID, YAGNI, ООП, Шаблонов проектирования, PWA, SPA;
🔵 Умение работать с Docker;
🔵 Опыт работы с микрофронтендами ( будет преимуществом );
🔵 Опыт работы с веб-сервисами (REST, WebSocket);
🔵 Опыт использования GitLab, Jira, Confluence или других подобных инструментов;
🔵 Опыт написания тестов.

Обязанности
🔵 Разработка нового и доработка существующего функционала;
🔵 Участие в разработке технических решений и архитектуры ПО;
🔵 Техническая поддержка кода программного продукта, исправление дефектов.

🚩Что мы предлагаем
🟡 Участие в интересных проектах с использованием современных технологий.
🟡 Профессиональное и карьерное развитие в рамках масштабных и интересных проектов;
🟡 Удаленная работа в команде наших клиентов или в нашей команде;
🟡 Гибкий график работы: 5/2 (с 9:00 - 18:00 или с 10:00 - 19:00, час обеда, возможность
согласовать индивидуальный график, выходные - суббота и воскресенье);
🟡 Full-time (40 часов в неделю).

💬 Резюме отправлять: @tabramova099

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2😁2🔥1