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
🤔 Какое свойство объекта 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
🤔 Какой JavaScript API предоставляет методы для манипуляции размерами и положением окон браузера?
Anonymous Quiz
48%
Document Object Model (DOM)
48%
Browser Object Model (BOM)
0%
Console API
5%
XMLHttpRequest
1
#ЛитКод
Задача: 634. Find the Derangement of An Array

В комбинаторной математике отклонение - это перестановка элементов множества таким образом, что ни один элемент не оказывается на прежнем месте. Вам дано целое число n. Изначально имеется массив, состоящий из n целых чисел от 1 до n в порядке возрастания, верните количество отклонений, которые он может породить. Поскольку ответ может быть огромным, верните его по модулю 109 + 7.

Пример:
Input: n = 3
Output: 2


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

1⃣Инициализация массива для хранения результатов
Создайте массив dp для хранения количества отклонений для каждого значения от 0 до n. Установите начальные значения: dp[0] = 1 и dp[1] = 0.

2⃣Вычисление количества отклонений
Используйте динамическое программирование для вычисления количества отклонений для каждого значения от 2 до n. Формула для вычисления: dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2]) % MOD.

3⃣Возвращение результата
Верните значение dp[n], которое будет количеством отклонений для n элементов, по модулю 10^9 + 7.

😎 Решение:
var countDerangements = function(n) {
const MOD = 1e9 + 7;
if (n === 0) return 1;
if (n === 1) return 0;
let dp = Array(n + 1).fill(0);
dp[0] = 1;
dp[1] = 0;
for (let i = 2; i <= n; i++) {
dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2]) % MOD;
}
return dp[n];
};


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

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
🤔 Какой метод JavaScript API
используется для
принудительного завершения работы Worker, исполняющегося в фоновом режиме?
Anonymous Quiz
20%
Worker.terminate()
37%
Worker.stop()
24%
Worker.kill()
20%
Worker.end()
#полезное
😊 Web Performance API: Измерьте важное

От медленного к быстрому: Использование JavaScript Performance API для оптимизации веб-приложений
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤔 Как в JavaScript можно отсортировать массив чисел по убыванию?
Anonymous Quiz
4%
numbers.sort();
28%
numbers.sort((a, b) => a > b);
56%
numbers.sort((a, b) => b - a);
13%
numbers.reverse();
2
#собес
🤔 Перечислите основные методы массивов.

Основные методы массивов в JavaScript включают push() , pop() , shift(), unshift(), splice(), slice(), forEach() , map(), filter(), reduce(), find(), includes () u join() . Эти методы позволяют добавлять, удалять, изменять, перебирать и проверять элементы массива, что делает их незаменимыми для работы с коллекциями данных.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
#полезное
😊 Пошаговое руководство по созданию персональной блог-платформы!

🟠 Автор фокусируется на разработке бэкенда с использованием REST API, реализованных с помощью Encore.ts — фреймворка для создания масштабируемых распределенных систем. В качестве базы данных для хранения данных блога используется PostgreSQL.
Смотреть руководство

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🍓32🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Базовые требования на JS-разраба 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
🍓42
🤔 Какой JavaScript API используется для получения точной геолокации пользователя, требуя его разрешения перед получением данных?
Anonymous Quiz
44%
Navigator.geolocation
19%
Window.location
21%
Document.getCoordinates()
15%
HTML5 Location API
3
#собес
🤔 Что такое мутирующие и не мутирующие методы?

Мутирующие методы изменяют оригинальный массив или объект, тогда как не мутирующие методы возвращают новый массив или объект без изменения исходного. Например, методы push ( ) и рор() являются мутирующими, потому что они изменяют исходный массив. В то время как map() и filter() являются не мутирующими, так как они создают новый массив на основе исходного.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 HTTP-запросы: структура, методы, строка статуса и коды состояния

Статья объясняет базовые элементы HTTP: структуру запросов, методы для выполнения операций, строку статуса и коды состояния, помогающие понять результат взаимодействия с сервером.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
#ЛитКод
Задача: 636. Exclusive Time of Functions

На однопоточном процессоре выполняется программа, содержащая n функций. Каждая функция имеет уникальный ID от 0 до n-1. Вызовы функций хранятся в стеке вызовов: когда начинается вызов функции, ее ID заталкивается в стек, а когда вызов функции заканчивается, ее ID выгружается из стека. Функция, чей идентификатор находится в верхней части стека, является текущей выполняемой функцией. Каждый раз, когда функция запускается или завершается, мы пишем лог с идентификатором, началом или завершением и меткой времени. Вам предоставляется список logs, где logs[i] представляет собой i-е сообщение лога, отформатированное как строка "{function_id}:{"start" | "end"}:{timestamp}". Например, "0:start:3" означает, что вызов функции с идентификатором 0 начался в начале временной метки 3, а "1:end:2" означает, что вызов функции с идентификатором 1 завершился в конце временной метки 2. Обратите внимание, что функция может быть вызвана несколько раз, возможно, рекурсивно. Исключительное время функции - это сумма времен выполнения всех вызовов функции в программе. Например, если функция вызывается дважды, причем один вызов выполняется за 2 единицы времени, а другой - за 1 единицу, то эксклюзивное время равно 2 + 1 = 3. Верните эксклюзивное время каждой функции в массив, где значение по i-му индексу представляет собой эксклюзивное время для функции с идентификатором i.

Пример:
Input: n = 2, logs = ["0:start:0","1:start:2","1:end:5","0:end:6"]
Output: [3,4]


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

1⃣Парсинг логов
Пройдитесь по каждому логу, чтобы распознать действие (start или end) и идентификатор функции вместе с временной меткой.

2⃣Использование стека
Используйте стек для отслеживания текущих вызовов функций. Если лог содержит start, добавьте функцию в стек и начните отсчет времени. Если лог содержит end, снимите функцию со стека и обновите эксклюзивное время.

3⃣Обновление времени выполнения
Когда функция завершает выполнение, обновите ее эксклюзивное время и также учитывайте время выполнения вложенных функций.

😎 Решение:
var exclusiveTime = function(n, logs) {
let stack = [];
let times = new Array(n).fill(0);
let prevTime = 0;

for (let log of logs) {
let [fid, type, time] = log.split(':');
fid = parseInt(fid);
time = parseInt(time);

if (type === 'start') {
if (stack.length) {
times[stack[stack.length - 1]] += time - prevTime;
}
stack.push(fid);
prevTime = time;
} else {
times[stack.pop()] += time - prevTime + 1;
prevTime = time + 1;
}
}

return times;
};


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

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2👎1👌1
#полезное
🤓 Roadmap для веб-разработчиков

Один из самых красивых роадмэпов, который я когда-либо видел, создал разработчик из Дании.

🟠Он составил интерактивную дорожную карту для веб-разработчиков.

🟠К каждому пункту прилагаются ссылки на ресурсы, где можно изучить или подтянуть соответствующую тему.

Это отличный способ организовать обучение и следить за своим прогрессом в веб-разработке.
Роадмэп тут

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