Фронтендер от бога
Відкрити в Telegram
Божественные дайджесты по фронтенду и немного юмора. По всем вопросам: @godinmedia
Показати більше3 511
Підписники
-124 години
-57 днів
-3430 день
Архів дописів
3 511
Полный гайд по объекту Date в JavaScript
#почитать
Объект Date позволяет создавать, сравнивать и форматировать дату и время. Используется для отображения текущего времени, вычисления интервалов и работы с таймзонами в веб-приложениях.
⏱Читать статью
3 511
Мои любимые паттерны для full-stack и frontend-проектов
#почитать
Проверенные в бою паттерны для проектов на React + TypeScript: фабрики ключей запросов, server actions, права доступа через CASL и многое другое.
⏱Читать статью
3 511
Синтаксический сахар или технический деготь: классы в JavaScript
#почитать
Сегодня мы сделаем следующий шаг к современному JavaScript. Я покажу вам классы — более чистый и понятный способ делать ровно то же самое. Хоть классы и называют «синтаксическим сахаром», но это не отменяет популярность и удобство их использования.
⏱Читать статью
3 511
Экипировка Бонда: полезные инструменты DevTools
#почитать
Для любого специалиста в веб-разработке DevTools — это незаменимый инструмент диагностики. Однако его истинная мощь часто остаётся «в тени»: многие используют лишь базовый функционал, упуская из виду целый арсенал возможностей для тонкой настройки и глубокого анализа.
В этой статье я хочу сосредоточиться на практических приёмах, которые ежедневно использую сам.
⏱Читать статью
3 511
Что такое null-коалесцентный оператор ?? в JavaScript
#почитать
Операторы ?? и ??= стали доступны в Baseline в статусе «Widely Available» с 16 марта 2023 года. Они упрощают работу с переменными, которые могут быть null или undefined, позволяя задавать значения по умолчанию или обновлять переменные только в этих случаях. Это делает код чище и понятнее, особенно при работе с потенциально отсутствующими данными.
⏱Читать статью
3 511
Приглашаем на Frontend Mix — бесплатный митап ЮMoney для всех, кто интересуется фронтенд-разработкой 🤩
🕓 28 мая, четверг, 19:00 (мск) — приходите на митап в Санкт-Петербурге или подключайтесь онлайн.
Спикеры из ЮMoney поделятся, как работают над задачами и улучшают процессы в команде.
Вот о чём будут рассказывать:
🟣 Как спят вкладки в браузере. На живом примере разберём, как браузер усыпляет вкладки, почему из-за этого ломается real-time и какие приёмы дебага и resync помогают находить и чинить их в продакшене.
🟣 Как построить Spec-Driven платформу для генерации писем. Используя OpenAPI как единый источник правды, покажем, как описывать контракты электронных писем через спецификацию и автоматически генерировать консистентный HTML.
🟣 Подключение модуля шумоподавления в рабочее место оператора. Рассмотрим инструменты React, WebSockets, WebRTC, а также архитектуру и логику работы модуля шумоподавления.
🟣 Круглый стол — AI во фронтенде: вызовы и реальность. Обсудим влияние нейросетей на фронтенд с трёх позиций: рынка, разработки и образования.
Чтобы попасть на митап, нужна регистрация. Все подробности — на сайте Frontend Mix 👈
3 511
Как мы искали безупречные данные в мире JavaScript
#почитать
Если вы когда-нибудь писали фронтенд на TypeScript и получали в проде Cannot read property 'x' of undefined, — добро пожаловать в клуб!
TypeScript спасает нас от сотен ошибок… но только пока код не запущен. Как только он скомпилировался, типы исчезают, и в рантайме вы снова остаетесь один на один с невалидными данными.
И вот тут начинается: меняется API, формы шлют что угодно, аналитика ломает отчёты, а тесты молчат.
В Островке мы попробовали библиотеку Valibot — легковесный runtime-валидатор, который умеет проверять данные на границах контекстов и при этом остаётся дружелюбным к TypeScript.
⏱Читать статью
3 511
🌐 Мы неправильно используем useEffect
#посмотреть
В данном ролике поговорим с вами о useEffectи посмотрим доклад, который раскроет более подробно тему состояний.
⏱Смотреть на YouTube ⏱️40 минут
3 511
Cryanide как альтернативная ветвь развития web-технологий
#почитать
Кратко о том, почему я не использую фреймворки, зачем пишу всё с нуля и к чему это привело.
Я написал полноценный SDK для web-приложений как концепт альтернативной ветви развития, если бы web-индустрия пошла по пути игровых движков.
⏱Читать статью
3 511
Хватит использовать JavaScript для решения задач CSS
#почитать
Недостаток знаний часто подталкивает людей к чрезмерно сложным решениям, и рано или поздно это отражается на производительности.
Возьмем content-visibility: auto. Он дает тот же эффект, что и React-Window, но без единой строчки JS и без увеличения размера сборки. Аналогичная ситуация с современными единицами высоты окна (dvh, svh, lvh): наконец-то приведена в порядок "мобильная" высота, которую годами пытались компенсировать через window.innerHeight.
Обе технологии в 2024 году получили более 90% поддержки современных браузеров и полностью готовы для продакшна. Однако мы по привычке продолжаем решать такие задачи с помощью JS, просто потому, что CSS незаметно ушел вперед, пока мы спорили о React Server Components.
⏱Читать статью
3 511
Всплытие переменных и функций в JavaScript
#почитать
В JavaScript есть уникальная особенность, переменную или функцию можно использовать по коду выше...
⏱Читать статью
3 511
Запилил кросс-фреймворк Markdown/MDX парсер, чтобы не мучаться с контентом
#почитать
Долго я возился с маркдауном в своих проектах и, честно говоря, знатно подгорел. Первая проблема — это вечный выбор библиотеки.
С одной стороны, есть «конструкторы» типа unified, remark и rehype. Штуки мощные, но настраивать весь этот AST-конвейер и систему плагинов — это какой-то оверхед и лишняя сложность, имхо.
С другой стороны, есть @next/mdx, который вроде и ок, но слишком завязан на страницах и вообще не умеет работать на клиенте.
Раньше я обычно выбирал что-то вроде markdown-to-jsx или react-markdown.
DX у них приятнее, работают и на клиенте, и на сервере, весят мало.
Но вот беда: они «из коробки» не переваривают HTML или MDX, и ты снова вязнешь в настройке плагинов. А если добавить туда i18n (типа i18next или next-intl), начинается настоящий ад. Куча if/else в коде, чтобы отрендерить нужный язык, и бандл раздувается до небес. Плюс вечные косяки с front-matter. Ну и до недавнего времени всё это было только для React.
⏱Читать статью
3 511
DOM-дерево — как не запутаться в ветвях объектной модели документа
#почитать
Бывало такое: смотрите вы на красивую страницу интернет-магазина, открываете консоль разработчика (ту самую, по F12 или через правый клик), а там — лес из тегов, который вообще не похож на то, что вы видите глазами?
⏱Читать статью
3 511
Интерактивный HTML с Alpine.js на простых примерах
#почитать
Большие фронтенд-фреймворки часто требуют сложной настройки: сборщики, роутинг, состояния, хуки, конфигурации. Но для небольших задач вроде выпадающих меню, модалок или табов этого слишком много — иногда хочется просто взять HTML и быстро добавить в него немного интерактивности.
⏱Читать статью
3 511
Замыкание в JavaScript — зачем функциям личное пространство
#почитать
В разработке нам постоянно нужны «умные», самостоятельные функции: счетчики, которые знают свое предыдущее значение, обработчики событий с индивидуальными настройками, механизмы для защиты данных.
Чтобы не городить глобальные переменные и не писать громоздкие конструкции (что почти всегда ведет к багам), мы посмотрим на еще одну фишку JS.
В предыдущих статьях мы разобрали: функции, их стрелочные записи, методы объектов и даже покорили this. Теперь пора переходить к теме, которая часто пугает на собеседованиях, но на деле оказывается невероятно элегантной — замыканиям.
⏱Читать статью
3 511
Форматирование относительного времени в JavaScript
#почитать
API Intl.RelativeTimeFormat доступно в Baseline в статусе «Widely Available» с 16 марта 2023 года. Это мощный инструмент для отображения относительного времени в локализованном виде, например, «через минуту», «вчера» или «2 недели назад». Он автоматически адаптируется к языку и культурным особенностям региона, делая интерфейс более понятным и дружелюбным для пользователей.
В этой статье мы разберём, как работает Intl.RelativeTimeFormat, и приведём несколько примеров его использования.
⏱Читать статью
3 511
Как мы рендерим видео на клиенте с помощью ffmpeg
#почитать
Обычно FFmpeg используют на сервере, но есть обертки и сборки для браузера, которые позволяют выполнять операции и на фронтенде. Сегодня речь пойдет о ffmpeg.wasm и настройке параметров для односекундной сборки видео, которое после просмотра пользователь может скачать.
В статье покажем, как выглядит решение. Оно подойдет и для бэкенда, но нам пришлось обрабатывать и склеивать ролики именно на клиенте.
⏱Читать статью
3 511
Реализуем собственный Promise в JavaScript
#почитать
В статье реализуется собственный Promise в JavaScript. Разбираем базовую модель промисов, проблемы наивной реализации и то, как они решаются в спецификациях Promises/A+ и ECMAScript.
Материал предназначен для разработчиков, которые используют Promise и хотят понять, как он работает внутри.
⏱Читать статью
3 511
Как мы собрали фронт без фронтендера за неделю: AI-ассистент + дизайн-система
#почитать
У нас случилась классика: бэкенд уже отдает данные, бизнес ждет экран «вчера», а фронтендера в команде нет и ближайшие фронты заняты.
Мы рискнули и собрали MVP‑интерфейс за неделю — без выделенного фронта, но на корпоративном стеке (Vue/TypeScript) и с дизайн‑системой.
Это не история «AI все сделал». Это история про то, как правила + дизайн‑система + ревью как для джуна могут делать из AI‑ассистента нормальный инструмент, а не генератор мусора.
⏱Читать статью
3 511
Как строить переиспользуемые фронтенд-компоненты: пример кнопки лайк
#почитать
Когда проект становится больше, неизбежно появляется вопрос: как писать интерфейс так, чтобы потом не переписывать одно и то же десятки раз?
⏱Читать статью
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
