progway

Статьи о web-разработке, разборы вопросов с собеседований

  —  2 минуты

Как создать массив фиксированной длины?

На самом деле, способов множество. Можно создать простой массив пустых элем...

Читать дальше

  —  2 минуты

Как реагировать на изменения объекта

В JavaScript обычные объекты не умеют уведомлять о своих изменениях, однако...

Читать дальше

  —  3 минуты

Верстка писем — это боль? или нет..?

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

Читать дальше

  —  2 минуты

Что такое Server-Sent Events

SSE — это технология для однонаправленного соединения между сервером и клие...

Читать дальше

  —  1 минута

Флоу рендеринга компонента в React

Небольшая шпаргалка, которая содержит в себе очередь вызова эффектов при ма...

Читать дальше

  —  4 минуты

Что такое WebRTC

WebRTC — Web Real Time Communications — стандарт, который описывает прямую...

Читать дальше

  —  4 минуты

Связываем React и localStorage через useSyncExternalStore

Как согласовать изменение состояния в реакте и поля в localStorage? До нед...

Читать дальше

  —  3 минуты

Теги для шаблонных строк

В JavaScript есть, как по мне, крайне странный синтаксис. Самым очевидным е...

Читать дальше

  —  2 минуты

Как скопировать значение в буфер обмена

Часто может возникнуть необходимость скопировать какое-то значение в буфер...

Читать дальше

  —  1 минута

Какими способами можно скрыть элемент со страницы?

Для многих каверзный вопрос. В этой статье коротко рассмотрим какие есть ва...

Читать дальше

  —  3 минуты

Составные компоненты

Есть такой паттерн для реакта, который называется Compound Components. Это...

Читать дальше

  —  3 минуты

Порталы в React

Сталкивались когда-нибудь с проблемой, когда нужно рендерить элемент за пре...

Читать дальше

  —  1 минута

Pattern matching

Pattern matching — это крутой концепт, который позволяет делать что либо в...

Читать дальше

  —  3 минуты

Как я использую шину событий

Шина событий — это паттерн, который используется для взаимодействия различн...

Читать дальше

  —  2 минуты

Немного о __proto__ и prototype в JavaScript

proto — это внутреннее свойство любого объекта или примитива в JavaScript,...

Читать дальше

  —  3 минуты

"Тяжёлые" анимации

На самом деле, на производительность сайта может влиять очень много что — и...

Читать дальше

  —  1 минута

Как определить, активна ли вкладка у пользователя?

Если вам нужно узнать, активна ли вкладка в браузере у пользователя, сущест...

Читать дальше

  —  2 минуты

Как менять состояние вкладки по интервалу

Полезная фича для демонстрации, например, уведомлений, которая может пригод...

Читать дальше

  —  3 минуты

Как браузер понимает, что нужно закешировать?

Частый вопрос с собесов, который, к тому же, часто может пригодиться и на п...

Читать дальше

  —  2 минуты

Что такое виртуализация?

Это крайне популярная техника оптимизации, которая позволяет эффективно упр...

Читать дальше

  —  2 минуты

Что такое SWC

SWC — это аббревиатура, которая всё чаще появляется в мире фронтенда. Расши...

Читать дальше

  —  1 минута

Как убрать стили на под-дереве — мини-задача с реального проекта

Недавно был следующий кейс: в долгоживущий проект интегрировали tailwind со...

Читать дальше

  —  1 минута

Разница между CommonJS и ES Modules

Если по простому, то CommonJS и ES (ECMAScript) Modules — это два способа и...

Читать дальше

  —  1 минута

Как отменить уже отправленный HTTP запрос?

Для отмены уже отправленного запроса нам пригодится встроенный в JavsScript...

Читать дальше

  —  1 минута

Что такое CI/CD

Помимо того, что разработчики должны уметь писать сам код, было бы неплохо...

Читать дальше

  —  1 минута

CSS для печати страниц

Несколько лет назад я делал пет-проект — конструктор резюме. Кейс был такой...

Читать дальше

  —  1 минута

Как скачать файл с сайта

У тега ссылки <a> есть очень удобный атрибут download, который позволяет ск...

Читать дальше

  —  2 минуты

noopener и noreferrer в браузере

При открытии ссылки в новой вкладке через атрибут target="blank", браузер д...

Читать дальше

  —  3 минуты

Разделение чанков в Vite

Часто может быть так, что не малое приложение с большим количеством зависим...

Читать дальше

  —  1 минута

Как открыть ссылку в новом окне или вкладке

Чтобы ссылка открывалась в новом окне или вкладке, достаточно добавить к те...

Читать дальше

  —  2 минуты

Что такое Callback Hell и как с ним бороться?

Частый вопрос с собеса, особенно если идти куда-то повыше стажёра. Callback...

Читать дальше

  —  1 минута

Как определить с какого устройства открыт сайт

Самым простым способом является анализ строки User-Agent’a — это специальны...

Читать дальше

  —  1 минута

Виды операторов в JavaScript

Операторы в языке (почти во всех языках, кстати), можно строго разделить на...

Читать дальше

  —  2 минуты

JavaScript не в браузере: NodeJS, Deno и Bun

Начать стоит с того, что JavaScript может выполняться далеко не только в бр...

Читать дальше

  —  2 минуты

Остановка распространения событий: event.stopPropogation и event.stopImmediatePropagation()

Итак, эти методы используются для управления событиями в JavaScript. Сначал...

Читать дальше

  —  2 минуты

Что такое декларативность и императивность?

Императивный подход написания кода фокусируется на том, КАК именно должна б...

Читать дальше

  —  2 минуты

Что такое Git Flow?

Git Flow — это модель ветвления для Git, основная идея которой заключается...

Читать дальше

  —  2 минуты

Определяющие тайпгарды

Как я и писал в одном из своих постов в телеге, тайпгарды есть двух видов:...

Читать дальше

  —  1 минута

Управление фокусировкой

Часто на собеседовании могут спросить об управлении состоянием фокуса. Обыч...

Читать дальше

  —  2 минуты

Зачем нужна семантика?

В одном из прошлых постов я разобрал что такое семантика. В этом посте хочу...

Читать дальше

  —  2 минуты

Что такое семантика?

Семантика в HTML относится к использованию HTML-тегов, которые ясно и одноз...

Читать дальше

  —  2 минуты

Псевдоселекторы в CSS

Псевдоселекторы в CSS — это специальные селекторы, которые позволяют выбира...

Читать дальше

  —  1 минута

Что такое Fullscreen API

Fullscreen API — это интерфейс для работы с полноэкранным режимом в веб-бра...

Читать дальше

  —  3 минуты

Сужение типов и уточняющие тайпгарды

Часто в TypeScript коде можно столкнуться с тем, что типы недостаточно точн...

Читать дальше

  —  2 минуты

В чем заключается разница между интерфейсом и типом?

Для меня большое удивление, что я до сих пор не смог найти нормального мате...

Читать дальше

  —  2 минуты

Что такое структурная типизация

Структурная типизация — это подход в языках программирования, который позво...

Читать дальше

  —  1 минута

Обработка сочетания клавиш в JavaScript

Чтобы обработать сочетание клавиш, необходимо подписаться на событие keydow...

Читать дальше

  —  3 минуты

Как типизировать функцию мемоизации

В одной из прошлых статей разбирал реализацию функции мемоизации на JavaScr...

Читать дальше

  —  1 минута

Реализация мемоизации в JavaScript

О том, что такое мемоизация, можно узнать в отдельной статье. На самом деле...

Читать дальше

  —  2 минуты

Что такое мемоизация

Мемоизация — техника оптимизации кода, сокращающая время его исполнения. Пр...

Читать дальше

  —  2 минуты

Семантическое версионирование

Способ создавать человекочитаемые наглядные номера версий для любого продук...

Читать дальше

  —  1 минута

В чём разница между функцией, методом и процедурой

Функция и метод — это два базовых понятия в программировании, но они исполь...

Читать дальше

  —  2 минуты

Какие ошибки есть в JavaScript?

Уже не помню где, скорее всего в чате тг канала, просили разобрать какие ес...

Читать дальше

  —  2 минуты

Шпаргалка по Utility-типам в TypeScript

В этой статье разберу только самые часто используемые, посмотреть все utili...

Читать дальше

  —  3 минуты

Дженерики

Сколько я не бился в попытках объяснить что такое дженерик, кажется, что эт...

Читать дальше

  —  2 минуты

Сколько времени читается статья?

Очень интересная фишка в блогах и на других текстовых сайтах — указывать ря...

Читать дальше

Всего статей: 56