Найти в Дзене
Поддержите автораПеревод на любую сумму
Паттерны проектирования: Abstract Factory
Где встречается в кросс‑платформенных UI‑фреймворках (React Native, Flutter); в системах с темами оформления (светлая/тёмная тема); при работе с разными СУБД (MySQL/PostgreSQL/SQLite); в игровых движках (разные наборы спрайтов для платформ); в сервисах мультирегиональности (разные правила для стран). 🔍 Суть паттерна Abstract Factory — порождающий паттерн, который: Создаёт семейства взаимосвязанных объектов без указания их конкретных классов. Определяет интерфейс для создания групп продуктов. Позволяет легко переключаться между семействами через подклассы‑фабрики...
1 месяц назад
Паттерны проектирования: Factory Method
Паттерны проектирования: Factory Method Где встречается в фреймворках (создание компонентов интерфейса); в системах с расширяемой архитектурой (плагины, аддоны); при работе с разными типами данных (экспорт в PDF/CSV/Excel); в игровых движках (генерация объектов уровня); в API‑клиентах (разные форматы ответов). 🔍 Суть паттерна Factory Method — порождающий паттерн, который: Определяет общий интерфейс для создания объектов в суперклассе. Позволяет подклассам изменять тип создаваемых объектов. Делегирует создание объектов конкретным подклассам...
1 месяц назад
Паттерны проектирования: Singleton.
Где встречается: кеширование данных, API‑клиенты, логирование, глобальные сервисы в React/Node.js. Singleton — это порождающий паттерн, который гарантирует существование только одного экземпляра класса и предоставляет глобальную точку доступа к нему. Ключевые признаки: Почему это Singleton: 🧩 Пример на TypeScript: строго типизированный...
2 месяца назад
Паттерны проектирования: Наблюдатель (Observer).
Где встречается: React (события, контекст), Node.js (EventEmitter), RxJS, кастомные системы уведомлений. Observer — это поведенческий паттерн, который позволяет объектам («наблюдателям») подписываться на события другого объекта («субъекта») и автоматически получать уведомления при изменении его состояния. Ключевые участники: React внутренне использует Observer‑паттерн...
2 месяца назад
Вопросы для собеседования в IT (React, JS, CSS, Typescript, общие вопросы) Часть 8
81. 📌 Что такое Temporal Dead Zone (TDZ) в JavaScript? 💬 Простое объяснение: TDZ — это период между входом в область видимости переменной и её инициализацией. В это время переменная существует, но к ней нельзя обратиться — будет ошибка ReferenceError. 🛠 Как работает: Возникает только для переменных, объявленных через let и const (не для var). Пока код не дошёл до строки объявления, переменная находится в TDZ. 💡 Полезно знать: 🧭 Зачем спрашивают на собеседовании? Проверяют понимание тонкостей объявления переменных и различий между var, let, const...
2 месяца назад
Нашёл на пока оптимальный способ вставлять код в Дзен. Уже лучше, чем было. Как руки доберутся перепишу статьи с вопросами в более привлекательный формат, как в этой статье dzen.ru/...ink
6 месяцев назад
Вопросы для собеседования в IT (React, JS, CSS, Typescript, общие вопросы) Часть 7
И снова я в поисках более удобного оформления кода в Дзен. Наткнулся на хорошую статью https://dzen.ru/a/XtUGaNtXXh9qY-gb. Решил попробовать и в данный момент подобный подход не работает, написал в поддержку Дзен и они ответили, что пока доступна вставка видео кода Дзен, Вконтакте и Яндекс форм поэтому пока будут скрины и ссылка на код:) 💬 Простое объяснение: Это две очереди, в которых движок JavaScript выполняет отложенные задачи. Микрозадачи (promise, queueMicrotask) исполняются сразу после текущего кода, а макрозадачи (setTimeout, setInterval) — на следующем цикле event loop...
6 месяцев назад
Вопросы для собеседования в IT (React, JS, CSS, Typescript, общие вопросы) Часть 6
Думаю начиная с этого поста буду добавлять следующее пояснение: 🧭 Зачем спрашивают это на собеседовании? — чтобы ты понимал, что именно хотят проверить интервьюеры, когда задают такие вопросы. И думаю стоит немного иначе вставлять сюда код. Структура сохранена: простое объяснение, как работает, пример, полезные детали и + причина вопроса. 💬 Простое объяснение: Поверхностное копирование копирует только верхний уровень объекта. Если внутри есть вложенные объекты или массивы — они всё ещё ссылаются на ту же память...
7 месяцев назад
💫 Немного о желаниях по поводу блога 💫 Хочу создать сообщество, которое будет: ▶ Обмениваться опытом — особенно в вопросах развития в IT, прохождения собеседований, выбора технологий, построения карьерного пути. ▶ Задавать и обсуждать реальные вопросы — не только "что спросят на собеседовании", но и "зачем это вообще спрашивают", "какой в этом смысл", "какие истории за этим стоят". ▶ Помогать новичкам и не только — простыми словами объяснять сложные вещи. Без снобизма, без «погугли», с уважением к любому уровню. 🤔 Зачем я это пишу? Я много раз сталкивался с тем, что IT может казаться либо чем-то магическим, либо слишком сложным. Кто-то не верит, что может разобраться, а кто-то боится даже начать. Я сам проходил это — и на этом пути мне очень не хватало живых обсуждений, честных историй и примеров "из жизни", а не просто списка вопросов для собеса. 😏 Что будет в блоге? 🔹 Подборки вопросов с разбором. Не просто "10 вопросов по JavaScript", а — зачем это спрашивают, где это реально используется, как можно ответить, даже если ты не знаешь точного ответа (Теперь постараюсь писать по-подробнее, но при этом лаконично:)). 🔹 Истории — мои и чужие. Как проходили собеседования, как валились проекты, как находились решения. 🔹 Маленькие объяснения больших тем. Async/Await, замыкания, ререндеры в React, Tailwind, TypeScript — всё, что сам использую и хочу объяснять понятно. 🔹 Комьюнити. Я буду рад любым комментариям — и техническим, и жизненным. Важно не просто рассказывать, но и слушать. Если тебе откликается — пиши, предлагай темы, делись своим опытом. Если ты уже работаешь в IT — будет круто, если поможешь советом. Если ты только начинаешь — возможно, ты как раз тот, ради кого я всё это пишу.
7 месяцев назад
Вопросы для собеседования в IT (React, JS, CSS, Typescript, общие вопросы) Часть 5
💬 Это способы хранения данных в браузере. Позволяют сохранять информацию между обновлениями страницы. 🛠 Отличия: 🧪 Пример: localStorage.setItem('user', 'Оля'); console.log(localStorage.getItem('user')); // "Оля" localStorage.removeItem('user'); 💡 Под капотом всё хранится в виде строк. Если сохраняешь объект — используй JSON.stringify(). 💬 Cookies — это маленькие данные, которые сохраняются в браузере и могут отправляться на сервер. 🛠 Как задать: document.cookie = "username=Анна; path=/; max-age=3600"; 🧪 Пример чтения: console...
7 месяцев назад
Вопросы для собеседования в IT (React, JS, CSS, Typescript, общие вопросы) Часть 4
💬 Простыми словами: Call Stack — это структура данных, в которой JavaScript "запоминает", какие функции вызываются и откуда. 🛠 Как работает: 🧪 Пример: function a() { b(); } function b() { console.log('b'); } a(); // стек: a → b → console → стек пуст 💡 Полезно знать: Если стек переполняется (например, из-за рекурсии без выхода) — будет ошибка Maximum call stack size exceeded. 💬 Простыми словами: this — это ссылка на объект, в контексте которого вызвана функция. 🛠 Варианты значений: 🧪 Пример: const user = { name: 'Катя', sayHi() { console...
7 месяцев назад
Вопросы для собеседования в IT (React, JS, CSS, Typescript, общие вопросы) Часть 3
💬 Простыми словами: Асинхронный код — это код, который не блокирует выполнение программы, а "ждёт" завершения операции (например, загрузки данных). 🛠 Основные способы: 🧪 Примеры: // callback setTimeout(() => console.log('через секунду'), 1000); // promise fetch('/api').then(res => res.json()).then(data => console.log(data)); // async/await async function load() { const res = await fetch('/api'); const data = await res.json(); console.log(data); } 💡 Полезно знать: Промисы и async/await помогают избежать "callback hell" — вложенных уровней коллбеков...
7 месяцев назад