Приветствую, дорогой читатель! Хочу поделиться решением наболевшей проблемы — автоматическим обновлением access-токена при истечении его срока действия.Эталонный сценарийПользователь успешно авторизуется, после чего access- и refresh-токены сохраняются в куки.Время жизни access token заканчивается, нужно запросить новый с использованием refresh.Перед отправкой запроса, требующего acess-токен, проверяем его наличие. Если его нет, отправляем запрос на получение нового.Пример такой реализации:api.…
Всем привет, хабровчане! Я (не)начинающий разработчик с относительно небольшим стажем, который пытается углубить свои знания в любимой технологии. В работе и повседневной жизни очень часто приходится работать с языком TypeScript, который мне очень нравится, но к своему стыду, сам очень плохо знаком с настройкой его конфигурации, поэтому решил восполнить этот пробел, ведя собственный Today I Learned. Некоторые опции tsconfig являются очень простыми и понятными. Другие же заставляют знатно напряч…
SVG – одна из самых интересных технологий браузера. С его помощью можно делать массу полезных и интересных компонентов. Это неотъемлемая часть моего стека.В этой статье я поделюсь основами, чтобы заложить прочный фундамент для дальнейшего развития. Я покажу вам, почему SVG так хорош, и поделюсь фишками, которыми вы сможете пользоваться прямо сейчас.Для понимания этой статьи не требуется специальных знаний и опыта работы с SVG, но предполагается, что вы знакомы с основами HTML/CSS/JS.Hello, SVGS…
ВведениеСегодня веб-приложения стали сложными интерактивными системами, напоминающими полноценные десктоп приложения. Однако за красивыми интерфейсами и богатым функционалом часто скрывается важный аспект, которому уделяется недостаточно внимания — доступность (accessibility). Для миллионов пользователей с ограниченными возможностями это означает, что они не могут полноценно взаимодействовать с сайтом, выполнить базовые действия или получить информацию.Проблема особенно ярко выражена в современ…
Автоматизация тестирования с Cypress становится всё популярнее, а кастомные команды — одним из ключевых инструментов для повышения читаемости, переиспользуемости и поддерживаемости тестов. В этой статье разберём, что такое кастомные команды, почему Cypress рекомендует отказаться от классического Page Object Model (POM), а также рассмотрим, как грамотно организовать и структурировать свои команды.Что такое кастомные команды в Cypress?Кастомные команды — это пользовательские функции, которые расш…
За последние пару лет генеративные нейросети стали волшебной кисточкой для всего: концепт-артов, иконок, иллюстраций, обложек, аватаров, спрайтов… Особенно - пиксель-арта. В Midjourney, Stable Diffusion, Dall-E, Image-1 и в других моделях можно просто вбить: “Pixel art goose with goggles in the style of SNES” — и получить шикарного пиксельного гуся за 10 секунд.Но если ты пробовал вставить такого гуся в игру — ты уже знаешь боль.Я решил вкопаться в эту тему поглубже и сделать open‑source‑инстру…
Всем привет. В статье рассмотрим, как Хоук — open-source трекер ошибок — упрощает отладку приложений.Когда нужен трекер консолиПредставьте, что часть пользователей внезапно разлогинивает сразу при открытии приложения. В логах сервера — тишина, а стандартный stack trace не даёт зацепок. Хочется посмотреть, что выводилось в консоли за секунды до исключения: не ушёл ли запрос с просроченным токеном? Не упал ли какой-нибудь middleware?Как Хоук решает задачуВ свежей версии Hawk JavaScript появился а…
Проблема: плагины, которые живут внутри чужих папокПоскольку исходный код проекта является проприетарным, для наглядности я буду использовать синтетический пример, который точно отражает суть проблемы.Представьте:Ядро (/core) с сотнями файлов в сложной структуре:/core ├── /config │ ├── app.yaml │ └── routes/ ├── /src │ ├── /utils │ │ ├── logger.py │ │ └── network/ │ └── main.py └── /templates ├── base.html └── /adminПлагин, который раскидывает свои файлы прямо в подпапки…
Привет, Хабр! Меня зовут Анна, я JS-разработчик в компании SimbirSoft и занимаюсь разработкой веб-приложений на React. Эту статью я посвящаю тем, кто занимается разработкой, сталкивается с нестандартными задачами и переживает, что нашу профессию может вскоре заменить искусственный интеллект (ИИ). Я поделюсь решением задачи, связанной с динамическими размерами блока, — проблемой, с которой наверняка может столкнуться в своей работе любой frontend-разработчик.Почему же я назвала статью именно «До…