Telegram Group Search
Фронтенд в картинках — просто, наглядно и понятно. Новые знания в компактном формате каждый день.

Присоединяйтесь: @FrontendPortal
🎂 Мой год перемен

В 27 лет я был в найме, только пробовал себя в менторстве, YeaHub существовал на уровне "в свободное время что-то пилим, одну страницу делаем месяц". На YouTube было 4000 подписчиков, в Telegram3000. Только родилась дочь, работы — море, пахал 24/7 без выходных.

Год спустя, в 28, всё иначе.

Я ушел из найма и полностью погрузился в свой проект. Сейчас в нём — 2000 зарегистрированных пользователей, 40 000 посещений за 5 месяцев, ежедневно платформу посещают 500–800 человек. Сеть каналов YeaHub выросла до 6000+ подписчиков. YouTube приближается к 10 000, Telegram5200.

За год для учеников я создал полноценный курс-роадмап: от основ HTML/CSS до продвинутых тем вроде Docker и CI/CD. Записал 150+ уроков, собрал базу гайдов и материалов. В мае выйдет бесплатный курс по JS DOM API на YouTube – я продолжаю делиться знаниями бесплатно.

Но главное — люди.

За этот год я обучил (и продолжаю обучать) больше 150 человек. Сообщество учеников и выпускников — уже 130+ человек. Помог трудоустроиться более 30 ребятам. Познакомился с крутыми ребятами — блогерами, менторами, экспертами. Вступил в сильные IT-сообщества. Прочувствовал мощь нетворкинга и силу окружения. Стал лучше, пересмотрел взгляды, прокачал мышление.

А ещё — это самый тёплый день рождения в моей жизни.

Утро началось с 40+ поздравлений от учеников. Жена с дочкой встретили меня с тортиком — не сдержался, прослезился 🥹. Писали коллеги, друзья, знакомые — столько тёплых слов, благодарностей и пожеланий.

Когда тебя так искренне поздравляют, когда благодарят за помощь, вдохновение и поддержку — понимаешь: я на правильном пути.

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

И знаю: впереди — ещё больше свершений. 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Разработка UI Kit: создание компонента Button

UI Kit представляет собой систематизированную коллекцию интерфейсных компонентов, которая служит фундаментом для разработки приложений. В современных проектах наличие продуманного UI Kit перешло из категории рекомендаций в обязательное требование по нескольким ключевым причинам.

1️⃣ Во-первых, UI Kit обеспечивает визуальную и функциональную согласованность интерфейса. Когда десятки или сотни экранов используют одни и те же компоненты
2️⃣ Во-вторых, разработка ускоряется в разы — вместо создания элементов с нуля, команда использует готовые решения.
3️⃣ В-третьих, значительно упрощается поддержка и масштабирование: изменения в дизайн-системе вносятся в одном месте, а применяются во всём проекте.

[Картинка 1: Пример Storybook]

UI Kit — это не просто коллекция кнопок и полей ввода. Это комплексная система, включающая:
- Базовые компоненты интерфейса (кнопки, формы, переключатели)
- Типографику и иерархию текста
- Цветовую палитру с семантическим значением цветов
- Систему отступов и размеров
- Состояния элементов (активное, неактивное, hover, focus)

[Картинка 2 и 3: Дизайн в Figma]

🛡 Основные принципы разработки компонентов UI Kit
При создании компонентов для UI Kit необходимо придерживаться нескольких фундаментальных принципов

1. Семантическая корректность
Каждый компонент должен максимально точно отражать свою суть на уровне HTML-разметки. Кнопка — это <button> или <input type="button">, ссылка — <a>, поле ввода — <input> или <textarea>. Это важно не только для доступности (accessibility), но и для правильной работы в различных контекстах (например, в формах или при навигации).

2. Полнота свойств
Компонент должен поддерживать все стандартные HTML-атрибуты соответствующего элемента. Для кнопки это включает type (button, submit, reset), disabled, autofocus и другие.

3. Управляемость извне
Компонент не должен содержать внутреннюю логику состояния (где это возможно). Все состояния (активное, неактивное, загружающееся) должны управляться через пропсы. Это делает компонент предсказуемым и легко интегрируемым в любую архитектуру.

4. Принцип открытости/закрытости
Компонент должен быть закрыт для модификаций (его базовое поведение нельзя изменить), но открыт для расширения. На практике это означает:
- Возможность добавления классов через className
- Возможность передачи произвольных атрибутов
- Гибкость в контенте через children

5. Единый источник правды
Изменение компонента в UI Kit должно автоматически отражаться во всех местах его использования. Это требует тщательного проектирования API компонента на этапе создания, чтобы избежать необходимости "ветвления" логики в будущем.

🔒 Архитектура UI Kit в проекте
Оптимальная структура для UI Kit в проекте выглядит следующим образом:

src/
ui/
Button/
Button.tsx # React-компонент
Button.stories.tsx # Документация в Storybook
Button.test.tsx # Тесты компонента
Button.module.css # Стили компонента
Input/ # Аналогичная структура для других компонентов
...
styles/
variables.css # CSS-переменные (цвета, отступы, шрифты)
typography.css # Типографика
animations.css # Анимации
global.css # Глобальные стили


🖥 Реализация компонента Button для UI Kit
Перед разработкой тщательно изучаем макеты и выделяем все варианты кнопок: Варианты по стилю, Размеры, Состояния, Дополнительные требования (иконки, текст).

[Картинка 4: Компонент Button]

При стилизации используем CSS-переменные из дизайн-системы, Для каждого варианта прописываем цвета для всех состояний.

[Картинка 5: CSS-переменные]

Создаем подробные TypeScript-интерфейсы: Объединение с нативными атрибутами button и a, Поддержка всех стандартных HTML-атрибутов, Четкое разделение кастомных и стандартных пропсов

[Картинка 6: Типизация кнопки]

Далее создаем сторисы для всех вариантов: Основной вид, Все состояния, Примеры с иконками, Вариант как ссылки

#ui #storybook #button #react
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔒 Архив записей менторской программы

Все групповые занятия, лекции и сессии лайвкодинга доступны в нашем закрытом чате-архиве. Здесь собрано 120+ записей, за исключением:

- Персональных мок-собеседований
- Индивидуальных разборов опыта ("прожарок")
- Реальных собеседований учеников

❗️ Эти материалы доступны только в чате с учениками так, как носят личный характер.

В закрытом чате-архиве много записей групповых занятий. Можно готовиться к лайвкодингу, к собеседованиям и изучать сложные темы.

Преимущества архивного чата:
- Доступ по подписке (500 руб./месяц)
- Возможность оценить качество и формат занятий
- Полезно для тех, кто рассматривает менторство

Примеры доступных материалов:
- Лекция по FSD на менторстве
- Групповой лайвкодинг по JavaScript
- Групповой лайвкодинг (Новички)
- Гайд: 80% всего Git & GitHub для работы.
- Гайд по процессам. Отвечаю на вопросы про опыт, по YeaHub
- Лайвкодинг методы массивов
- Лекция по основам JavaScript
- Митап по теме This
- Групповое собеседование

✔️ Хотите понять, подходит ли вам наш формат? Получите бесплатный доступ к закрытому чату на 3 дня

🌐 ПОЛУЧИТЬ ДОСТУП
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Мурыч написал под последним видео на YouTube. Кому интересно — зайдите в комментарии, он привёл 3 ответа по спецификации JS
JavaScript: Основы и теория
00:00:00 – Введение: теория и практика JavaScript.
00:00:49 – Способы создания переменных: let, var, const.
00:02:13 – Hoisting (поднятие) и типы данных.
00:03:20 – Примитивные типы данных и NaN.
00:05:40 – Подготовка к собеседованиям с платформой ehab.

Операторы и преобразование типов
00:07:33 – Унарные и бинарные операторы.
00:09:50 – Тернарные операторы и преобразование типов.
00:11:57 – Операторы сравнения и строгое равенство (===).
00:13:43 – Оператор switch как альтернатива if-else.

Функции и замыкания
00:23:06 – Типы функций в JavaScript.
00:26:58 – Стрелочные функции vs обычные функции.
00:27:58 – Замыкания и их применение.

Работа с числами и строками
00:30:11 – Округление чисел (round, floor, ceil).
00:32:57 – Методы строк (toLowerCase, slice, substring).
00:34:32 – Проверка подстроки (includes, регулярные выражения).

Массивы и объекты
00:44:46 – Объекты: хранение и ссылки.
00:46:36 – Клонирование объектов (поверхностное и глубокое).
00:55:05 – Методы массивов (push, pop, map, filter).

Асинхронность и промисы
01:45:12 – Промисы и их состояния (pending, resolved, rejected).
01:48:02 – Методы промисов (all, race, resolve).
01:50:51 – Работа с fetch и запросами.

ООП и прототипы
01:59:20 – Классы и наследование.
02:00:44 – Ключевое слово super и защищенные свойства.
02:02:00 – Создание функции-конструктора Animal.

DOM и события
02:04:24 – Поиск элементов в DOM.
02:07:59 – Фазы событий (захват, цель, всплытие).
02:09:17 – Пользовательские события.

Хранилища и прокси
02:10:28 – localStorage, sessionStorage, cookies.
02:13:03 – MutationObserver для отслеживания изменений DOM.

https://youtu.be/A2P3Gn2_gSY?si=iednvaJ0O502SI-H
👩‍💻 SOON: ВЕСЬ React.js в одном собеседовании. 200 вопросов + 70 задач за 2 часа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔼 Как УСИЛИТЬ слабый опыт | Проекты, Процессы, Задачи и Достижения

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

Что вас ждет:
Как презентовать любой проект — даже если это был «просто интернет-магазин»
Какие процессы важно упомянуть (SCRUM, CI/CD, тестирование), даже если их не было
Как описывать задачи, чтобы звучало как senior-уровень
Что говорить про инфраструктуру и деплой, если делал всё на коленке
Фразы-убийцы, которые заставят HR поверить в ваш опыт

Кому будет полезно:
Джунам и миддлам, которые хотят прыгнуть выше текущего уровня
Фрилансерам, чей опыт не берут в расчет
Тем, кто долго ищет работу из-за «недостаточно сильного» бэкграунда

Это первое мое полноценное видео про трудоустройство. Советую посмотреть

Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.

#собеседования #резюме
Please open Telegram to view this post
VIEW IN TELEGRAM
Странно, что это видео набирает так мало просмотров. Подходы, которые в нём разбираются, действительно помогают моим ученикам трудоустраиваться. При этом там не просто шаблонные советы вроде «Так не говори, а так говори». Мы детально разбираем каждый вопрос, объясняем, как к нему подготовиться.

Лучшего гайда по усилению опыта для фронтенд-разработчика просто не найти. Советую всё-таки посмотреть — решил выпустить годный контент для ребят, потому что знаю ситуацию на рынке: компании сейчас очень избирательны и выбирают кандидатов именно по опыту.

00:00 - Разбор ключевых вопросов с собеседований и примеры ответов.
00:58 - Как презентовать свой опыт, особенно из стартапов и маленьких компаний.
01:45 - Важность командных процессов (канбан, ретро) и проверка знаний на собеседовании.
02:41 - Как добавить в резюме технологии, даже если не использовал их в проекте.
04:49 - Почему важно разбираться в инфраструктуре и как изучить базовые практики.
08:21 - Настройка CI/CD
09:51 - Пример слабого ответа. Почему ответ "тимлид делал, я не вникал" — провал.
10:51 - Пример сильного ответа. Как описать CI/CD, Docker, Git Flow и решение проблем с кэшированием.
14:19 - Ergostol
15:39 - Вопрос о сложной задаче. Три метода усилить простую задачу (масштаб, заимствование, гибрид).
19:43 - Плохой ответ о сложной задаче. Почему модальное окно — слабый пример.
20:56 - Идеальный ответ о сложной задаче. Пример: разработка конструктора отчетов с оптимизацией и интеграцией.
23:39 - Профессиональные фишки. Как упоминание метрик и бизнес-ценности усиливает ответ.
24:19 - Работа в команде. Зачем знать методологии (Scrum, Kanban) и инструменты (Jira, Figma).
28:59 - Плохой ответ о процессах. Хаотичная работа без документации — красный флаг.
30:16 - Хороший ответ о процессах. Пример работы по Scrum с Jira и Confluence.
32:46 - Взаимодействие с командой. Как общаться с тестировщиками, дизайнерами и бэкендерами.
37:03 - Пример хорошего взаимодействия. Совместные сессии, чек-листы и решение багов.
41:45 - Структура задач и баги. Как описывать баги и пользовательские сценарии в Jira.
43:56 - Важность командного подхода. Почему бизнес оценивает кандидатов по проектам, а не личным навыкам.
44:54 - Масштабирование проектов. Как превратить интернет-магазин в "экосистему для 50+ точек".
50:30 - Полноценный стек технологий. Зачем добавлять в описание TypeScript и state-менеджеры, даже если не использовал.
54:44 - Плохой ответ о проекте. Почему "магазин мебели на React" — слабая история.
55:51 - Идеальный ответ о проекте. Пример: платформа для цифровизации ритейла с AI и микрофронтендами.
59:33 - Развитие специалистов. Как прокачивать навыки вне работы и расти в карьере.

https://youtu.be/WemHjWFjh3o?si=sXpG5h8HSqn2hZ9w
2025/05/20 09:20:37
Back to Top
HTML Embed Code: