React Frontend | YeaHub – Telegram
React Frontend | YeaHub
3.37K subscribers
308 photos
4 videos
1 file
530 links
Теория, подготовка к интервью и курсы для React разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #react #sollid #microfrontend

🤔 Middle Frontend разработчик в компанию X5

Техническое собеседование. Лето 2025. Опыт: 4.3 года. Вилка: 200к+. Проект: проектирование биржевого терминала/аналитической платформы. В конце был лайвкодинг.

💬 Вопросы:

- Как обеспечить изоляцию зависимостей?

- Как управлять версионностью зависимостей (например, React) между микрофронтами?

- Какие проблемы возникают в микрофронтенд-архитектуре?

- Как спроектировать структуру приложения с учётом SOLID?

- Как интерпретировать принцип замены Лисков (L в SOLID) во фронтенде (на примере React)?

👉 Все вопросы из этого собеседования (21)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
4
#Собес #build #pipeline #automation
🤔 Что такое build pipeline?

💬 Кратко:

Build pipeline — это набор автоматизированных шагов, через которые проходит код перед развертыванием. Он включает сборку, тестирование и подготовку к развертыванию, гарантируя, что только рабочий код попадёт в продакшн

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍4👎1
#tool #гит
📚 Хочешь изучить Git, не рискуя своей локальной установкой?

Теперь можно запускать команды Git прямо из браузера , с пошаговым объяснением, что делает каждая команда.

Перейти к материалу

👉 База вопросов 👉 Новости
5👍2
#Собес #javanoscript #dom #events
🤔 Как подписаться на событие клика кнопки в DOM?

💬 Кратко:

Используйте метод addEventListener для подписки на событие click:
document.querySelector('button').addEventListener('click', () => {
console.log('Кнопка нажата!');
});


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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🔥2👍1👎1
#React

🚩 Почему ваш компонент не видит обновления Props?

Props — это read-only канал от родителя к ребёнку. Главное: вы не можете их менять. Попытка мутировать Props приведёт к тому, что обновления не произойдут.

// Плохо - Props read-only
function UserCard(props) {
props.name = "Bob"; // Не сработает!
return <h1>{props.name}</h1>;
}

// Хорошо - Используйте callback
function UserCard({ name, onNameChange }) {
return (
<>
<h1>{name}</h1>
<button onClick={() => onNameChange("Bob")}>Change</button>
</>
);
}


📎 Основные проблемы:

🟣 Props read-only, но разработчики их мутируют
🟣 Передача всего объекта вместо деструктуризации
🟣 Забывают про dependency в useEffect при изменении props

Props — это контракт: родитель передаёт данные, ребёнок их использует, но не меняет. Если нужно обновить — вызови callback.

Пример:

function Button({ label = "Click", onClick }) {
return <button onClick={onClick}>{label}</button>;
}

function Shop() {
const [cart, setCart] = React.useState([]);
const products = [{ id: 1, name: "Laptop", price: 1000 }];

return (
<div>
{products.map(p => (
<Button key={p.id} label="Add" onClick={() => setCart([...cart, p.name])} />
))}
<p>Cart: {cart.length}</p>
</div>
);
}


Props для:
- Передачи данных сверху вниз
- Callback функций для событий
- Конфигурации компонента
- Переиспользуемых компонентов

Не делайте:
- Мутацию Props
- Props drilling (5+ уровней)
- Передачу целого объекта

Props — основа React!


🔎🔎🔎🔎🔄

#⃣Вопрос

#⃣Новости

#⃣База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71👎1🔥1
#Собес #typenoscript #javanoscript #object

🤔 Middle Frontend разработчик в компанию Ай-Теко

Техсобес. ЗП: от 200к. Май 2025. Проект: Сбер. Опыт: 4 года. Задачи: Отсортировать список нечетных чисел, Валидность скобок.

💬 Вопросы:

- Какие есть способы создания объектов и в чем их отличия?

- Что такое Promise?

- Как отменить fetch-запрос?

- Что такое цикл событий (event loop) и как он работает?

- Расскажите про все методы Promise?

👉 Все вопросы из этого собеседования (14)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
👎21
#Собес #authentication #password #biometrics
🤔 Назовите три метода аутентификации пользователя.

💬 Кратко:

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

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👎3👍1
#trainer #тесты
📚 Тесты для проверки своих знаний по React

Отличная специализированная образовательная платформа, посвященная тестированию знаний в области фронтенд-разработки, с особым акцентом на библиотеку React.

Перейти к материалу

👉 База вопросов 👉 Новости
🔥9👎21👍1
#Собес #react #keys #реакт
🤔 Как использовать keys?

💬 Кратко:

Keys — это уникальные идентификаторы, которые React использует для того, чтобы отслеживать элементы при рендеринге списков. Они помогают React эффективно обновлять только те элементы, которые изменились, а не перерендеривать весь список. Ключи должны быть уникальными среди соседних элементов.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍71
#React #JavaScript
🚩 Почему props drilling разрушает вашу архитектуру React?

Redux — это предсказуемый контейнер состояния для JavaScript-приложений. Вместо передачи данных через множество слоёв компонентов (prop drilling), Redux хранит всё состояние в одном центральном месте, и любой компонент может получить нужные данные напрямую.

Блок "Проблема/Решение":
// Плохо: props drilling - передача через 5+ компонентов
<App user={user}>
<Header user={user}>
<Nav user={user}>
<Profile user={user} />
</Nav>
</Header>
</App>

// Хорошо: Redux - компонент берёт данные напрямую из store
import { useSelector } from 'react-redux';

function Profile() {
const user = useSelector(state => state.user);
return <div>{user.name}</div>;
}



📎 Основные проблемы без Redux:

🟣 Props drilling — данные передаются через десятки компонентов
🟣 Состояние разбросано по всем компонентам — сложно отследить изменения
🟣 Один компонент обновляется — перерисовывается всё дерево
🟣 Сложная отладка — откуда пришли данные в компонент?


🔴Как работает Redux?

Store — одно центральное хранилище состояния всего приложения. Это единственный источник правды.

Action — простой объект, описывающий, что произошло: { type: 'ADD_TODO', payload: 'Купить молоко' }.

Reducer — чистая функция, принимающая старое состояние и action, возвращающая новое состояние: (state, action) => newState.

Dispatch — отправляет action в reducer: dispatch({ type: 'ADD_TODO' }).

Поток данных: User Action → Dispatch → Reducer → New State → UI Update.

// Пример: счётчик
const initialState = { count: 0 };

function counterReducer(state = initialState, action) {
switch(action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
}

// В компоненте
function Counter() {
const count = useSelector(state => state.count);
const dispatch = useDispatch();

return (
<div>
<p>{count}</p>
<button onClick={() => dispatch({ type: 'INCREMENT' })}>+</button>
</div>
);
}


Правильное решение:
- Используйте Redux для сложных приложений с множеством общего состояния
- Применяйте Redux Toolkit для упрощения кода (createSlice вместо reducers)
- Разделяйте состояние на логические слайсы (auth, products, cart)
- Используйте useSelector для получения данных и useDispatch для отправки actions
- Оборачивайте приложение в <Provider store={store}>


Чего избегать:
- Не используйте Redux для простых приложений (используйте useState)
- Не мутируйте состояние напрямую — reducers должны быть чистыми функциями
- Не складывайте в Redux всё подряд — только глобальное состояние
- Не забывайте про мемоизацию селекторов для оптимизации

Когда использовать Redux: большое приложение (100+ компонентов), часто меняющееся состояние, несколько разработчиков, нужна хорошая отладка. 60% React-приложений используют Redux!


🔎🔎🔎🔎🔄

#⃣Вопрос

#⃣Новости

#⃣База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥41
#Собес #react #flux #typenoscript

🤔 Middle Frontend разработчик в компанию amoCRM.

Техническое собеседование. Зарплатная вилка: до 200к. Весна 2025. Опыт в резюме: 4 года. Офис. Спрашивали по опыту много вопросов. Был лайвкодинг

💬 Вопросы:

- Можно ли рандомные key в React задать?

- Как правильно использовать useEffect для различных ситуаций?

- Как использовать keys?

- Что такое React и какие ключевые особенности он имеет?

- Что такое utility types в TypeScript?

👉 Все вопросы из этого собеседования (7)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
👍51
#Собес #github
🤔 Что такое Git и GitHub?

💬 Кратко:

Git — это система контроля версий, которая позволяет отслеживать изменения в коде, возвращаться к старым версиям и работать над проектом совместно с другими разработчиками. GitHub — это платформа, где можно хранить код в облаке, делиться им и управлять проектами с помощью Git. Вместе они помогают эффективно работать над проектом в команде.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍61
#course #тесты #тренажер
📚 JavaScript Тесты

Курс предназначен для проверки знаний JavaScript и подготовки к собеседованиям на позицию JavaScript-разработчиков!

Перейти к материалу

👉 База вопросов 👉 Новости
👍2
Forwarded from YeaHub
[Версия 1.2.1] - Обновление платформы

Мы продолжаем развивать YeaHub, чтобы сделать обучение ещё удобнее, эффективнее и интереснее. В этом обновлении — важные и долгожданные улучшения 👇

🔹 Аналитика платформы
Нам важно понимать, какие вопросы вызывают наибольшие сложности у тех, кто готовится к собеседованиям, поэтому мы начали собирать расширенную статистику.
Какой вопрос самый сложный в нашем тренажёре? Какие навыки наиболее востребованы? Какие темы чаще всего встречаются на реальных собеседованиях? И многое другое — всё это теперь доступно благодаря обновлённой аналитике. Аналитика (после авторизации)

🔹 Обучение и менторы
Вы должны знать героев, которые помогают делать платформу лучше. Это менторы, которые вместе со своими учениками развивают YeaHub, давая бесценный опыт работы над реальным продуктом.
А также крутые эксперты, которые повышают качество контента и помогают нам расти. Все менторы

🔹 Записи собеседований
Мы расширяем партнёрства! Нам важно собрать всё самое полезное в одном месте.
Теперь у нашего партнёра с закрытым чатом собеседований появился отдельный информативный лендинг — удобно, структурировано и всегда под рукой. Записи собесов

🔹 Исправления и улучшения
Мы учли вашу обратную связь: исправили баги, улучшили интерфейс и сделали работу с платформой ещё комфортнее 🧠

🔥 Скоро
1. Парсер навыков и ключевых слов с HH
2. Сервис Лайвкодинга с реальными задачами с собеседований

👉 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru

#release #news #update #yeahub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41
#Собес #прототип #объекты #наследование
🤔 Для чего нужен прототип и как присвоить прототип объекту?

💬 Кратко:

Прототип в JavaScript — это объект, от которого другие объекты могут наследовать свойства и методы. Присвоить прототип можно с помощью метода Object.create() или через свойство __proto__. Это позволяет организовать наследование и разделять общие методы и свойства между несколькими объектами.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍6
🖥 TypeScript — как его стоит изучать

Есть важный момент: в реальной работе разработчик использует далеко не весь TypeScript — зачастую лишь 20–30% его возможностей. Поэтому новичку совершенно не обязательно сразу пытаться охватить всю технологию. Это только замедлит процесс, усложнит обучение и снизит эффективность.

К тому же теория без практики даётся тяжело, изолированные примеры часто непонятны, а задачи по TS поначалу кажутся перегруженными. В результате уходит много времени, а прогресс ощущается слабым. Классическое правило 20/80 здесь работает идеально: небольшой, но правильно выбранный набор знаний даёт максимальный результат.

🔹 Этап 1 — База + поверхностное знакомство с продвинутыми темами

На старте важно понять только основу типизации:
- примитивные типы
- type
- interface
- union-типы
- type aliases

И всё! Поверьте, большинство опытных разработчиков не держат в голове сложные типизации событий или утилит — всё это гуглится за 10 секунд.

Главное — практика. Получать ошибки TypeScript, гуглить их, разбираться — именно так и формируется настоящее понимание логики TS.

Что делать на этом этапе?

1. Посмотреть 1–2 курса (любые):
Полный курс TypeScript за час — https://www.youtube.com/watch?v=V7hBejCH1HI

TypeScript с 0 до Профи. Полный курс + Практика — https://www.youtube.com/watch?v=PYWaUwjofJo

2. Сразу начать проект:
Туду-лист, работа с API, калькулятор — неважно. Главное, чтобы был реальный код, а не только теория.

Идеальная длительность этапа — примерно 2 недели.

🔹 Этап 2 — Продвинутые темы (после освоения React, RTK)

Этот этап точно не нужен новичку. Продвинутый TS лучше изучать тогда, когда уже освоен весь React-стек и есть несколько пет-проектов.

Что входит в продвинутую часть?
- Generics
- Utility Types
- Type Guards
- Маппинг типов
- Сложные паттерны типизации

Как изучать?

1. Посмотреть фундаментальный курс:
TypeScript ФУНДАМЕНТАЛЬНЫЙ КУРС от А до Я — https://youtu.be/LWtHl__oEWc?si=JQidflBDL61By3mS

2. Начать решать задачи:
https://bigfrontend.dev/typenoscript
https://github.com/type-challenges/type-challenges

⭐️ Почему так?

Проблема большинства курсов в том, что они вываливают всю информацию сразу. Новичку это не помогает — он просто не может усвоить продвинутые концепции без опыта.

Точно так же, как нет смысла проходить весь React от и до при первом знакомстве, нет смысла полностью изучать TypeScript на старте.

Кстати, начал внедрять такие практики на менторстве. Снова все улучшать и переделывать курсы свои😅

#typenoscript
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3👍2
#Собес #react #flux #typenoscript

🤔 Middle Frontend разработчик в компанию amoCRM.

Техническое собеседование. Зарплатная вилка: до 200к. Весна 2025. Опыт в резюме: 4 года. Офис. Спрашивали по опыту много вопросов. Был лайвкодинг

💬 Вопросы:

- Можно ли рандомные key в React задать?

- Как правильно использовать useEffect для различных ситуаций?

- Как использовать keys?

- Что такое React и какие ключевые особенности он имеет?

- Что такое utility types в TypeScript?

👉 Все вопросы из этого собеседования (7)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
4
#Собес #horizontal_scaling #docker_swarm #kubernetes
🤔 Как масштабировать Docker контейнеры горизонтально?

💬 Кратко:

Для горизонтального масштабирования Docker контейнеров можно использовать Docker Swarm или Kubernetes. В Docker Swarm вы создаете кластер и используете команду docker service scale, чтобы масштабировать количество реплик для сервиса. Например, команда docker service scale myservice=5 увеличит количество реплик сервиса myservice до 5.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1