Я знаю, что на эту тему уже было сказано много, но настал мой черед. На JS я пишу больше 10 лет, так что терпел я достаточно :) Когда мы говорим “джаваскрипт”, мы подразумеваем много разных вещей:Стандарт EcmaScriptСреда исполнения (NodeJS, браузер)Экосистема (библиотеки, фреймворки, тулинг)Иногда есть смысл поговорить об этих вещах по отдельности, но сегодня мы обсудим их все сразу, и назовем это просто “джаваскрипт”. А именно, я объясню, почему джаваскрипт это плохой язык.Что значит плохой?А …
Привет всем! Меня зовут Антон Галич, я фронтенд-инженер в департаменте разработки Analytics Platform в Авито. Команда занимается разработкой и поддержкой платформы для сбора и доставки аналитики в Авито – Clickstream. В этой статье я рассказываю историю о том, как мы перевели аналитику для внутренних сервисов компании на нашу собственную платформу, отказавшись от стороннего решения Amplitude.Дисклеймер: сущности, относящиеся к нашей платформе, далее в тексте называю, используя префикс cs-.Что в…
ВведениеВ предыдущей статье рассмотрели, как быстро настроить Cypress и axe-core для запуска автоматических тестов доступности (подробнее здесь).Теперь время перейти к практике. Какие именно проверки стоит автоматизировать в первую очередь? На каких ошибках доступности можно поймать проблемы ещё до выхода на продакшн?В этой статье — 5 простых, но эффективных идей для автоматизированных accessibility-тестов, которые помогают системно повышать качество интерфейсов при минимальных затратах.1. Авто…
Привет! Меня зовут Ярослав, я фронтенд-разработчик в Outlines Tech. В одном из PWA-проектов с Backend-Driven UI (BDUI) я столкнулся с проблемой: интерфейс загружался слишком медленно. Пользователи видели спиннер и ждали более 15 секунд, пока страница заработает: интерфейс не начинал функционировать, пока не приходили все данные. За это время большинство пользователей теряли терпение и просто закрывали вкладку.Медленная загрузка как конечный результат — меня не устроил. Это бесило, ведь при загр…
Если вы уже освоили основы написания Composable в Vue, то следующий шаг — собрать коллекцию лучших и самых полезных паттернов, расширив свой инструментарий для решения задач:Паттерны для улучшения управления состояниемОрганизация Composable (не всегда нужен отдельный файл!)Улучшение опыта разработчика, например поддержка одновременно асинхронного и синхронного поведенияВ этой статье мы рассмотрим семь различных паттернов для написания более эффективных Composable.1. Паттерн Data Store (Хранили…
"JavaScript отстой, потому что '0' == 0!"— буквально каждый когда-либоДа, эта часть JavaScript действительно ужасна, но сегодня в любом проекте есть линтер, который тут же заворчит на вас за такой код.Вместо этого я хочу поговорить о более странных особенностях JavaScript — о таких, которые гораздо более коварные, чем эта ☝️ - о вещах, которые вы не найдете ни на r/ProgrammerHumor, ни в обычном учебнике по JavaScript.Все эти странности могут возникнуть в любом окружении JavaScri…
JetBrains зарелизил новую версию своего AI-ассистента — и вместе с ним Junie, автономного нейросетевого агента-программиста, которому можно поручать небольшие рабочие задачи.Буквально вчера я получил к нему доступ и не смог не воспользоваться возможностью. Я даже не представлял, насколько это весело.Мой опыт с ИИ в разработкеЕсли не считать чаты ChatGPT и DeepSeek, из ИИ-помощников я пользовался Copilot в WebStorm на GPT-4o / Claude и, честно говоря, не был сильно доволен:авто-подсказки, на мо…
Пишу про полезные материалы про IT, и собираю свой ламповый нетворкинг тут - https://t.me/+434aQiGpZtAyNTU6. Присоединяйтесь!Оглавление.Часть 1. ВведениеЧасть 2. Запускаем CIЧасть 3. Его величество, деплой!ВведениеНа прошлых шагах, мы с вами разобрали базовые механизмы CI, которые позволили нам автоматизировать ряд рутинных операций. Самое время перейти к более сложному кейсу. Сказать откровенно – я несколько раз пытался подойти к освоению по части CD. Сложновато было найти руководство под мои …
МотивацияКогда-то я занимался спортивными парными танцами. Часто на тренировках была необходимость узнать темп (или скорость, если немного подушнить насчёт терминов) играющего трека, который измеряется в "ударах в минуту" (beats per minute, bpm)Спортсмены используют для этого разные сайты/приложения, где нужно пальцем "протапать" ритм. Я и сам таким пользовался, но однажды я задался вопросом — смогу ли я сделать браузерный сервис, который сможет определять bpm из записанного чер…