Category : javascript

javascript
Сигналы, роутинг, реактивность, Fusor приложение

В этом посте я опишу, как настроить современную маршрутизацию и использовать сигналы для реактивного отключения выбранных ссылок.Сигналы — это просто реализация паттерна "observable". Хотя мы могли бы использовать любую библиотеку для этой цели, мы создадим свою собственную, чтобы обеспечить лучшую наглядность и понимание.export class Observable { #callbacks = new Set(); notify() { for (const fn of this.#callbacks) fn(); } subscribe(callback) { this.#callbacks.add(callba…

  • среда, 30 апреля 2025 г. в 00:00:06
javascript
Альтернатива Zod размером 1 КБ

19 марта 2025 года вышла стабильная версия Valibot — библиотеки для валидации данных в JavaScript/TypeScript. Разработанная как альтернатива популярному Zod, она сочетает минималистичный дизайн с мощными возможностями.В этой статье мы сравним Valibot и Zod по трём ключевым параметрам: синтаксису API, размеру библиотеки и скорости работы. Вы узнаете, чем эти решения отличаются друг от друга и почему стоит использовать специализированные инструменты валидации входящих данных.Зачем нужны библиотек…

  • среда, 30 апреля 2025 г. в 00:00:05
javascript
Cookie Store API

До недавнего времени программный доступ к куки в браузере осуществлялся через API document.cookie — простой строковый геттер/сеттер. Для получения одного файла куки приходилось разбирать всю строку вручную и преобразовывать ее в удобный формат. А чтобы записать куки, нужно было сначала сформировать структурированные данные, затем сериализовать их в строку и только после этого присвоить значение document.cookie. Разработчики часто используют популярные библиотеки, например js-cookie, которые …

  • среда, 30 апреля 2025 г. в 00:00:04
javascript
Почему JS (и TS) это плохой язык

Я знаю, что на эту тему уже было сказано много, но настал мой черед. На JS я пишу больше 10 лет, так что терпел я достаточно :) Когда мы говорим “джаваскрипт”, мы подразумеваем много разных вещей:Стандарт EcmaScriptСреда исполнения (NodeJS, браузер)Экосистема (библиотеки, фреймворки, тулинг)Иногда есть смысл поговорить об этих вещах по отдельности, но сегодня мы обсудим их все сразу, и назовем это просто “джаваскрипт”. А именно, я объясню, почему джаваскрипт это плохой язык.Что значит плохой?А …

  • среда, 30 апреля 2025 г. в 00:00:03
javascript
Как мы перевели аналитику внутренних сервисов Авито на собственное решение

Привет всем! Меня зовут Антон Галич, я фронтенд-инженер в департаменте разработки Analytics Platform в Авито. Команда занимается разработкой и поддержкой платформы для сбора и доставки аналитики в Авито – Clickstream. В этой статье я рассказываю историю о том, как мы перевели аналитику для внутренних сервисов компании на нашу собственную платформу, отказавшись от стороннего решения Amplitude.Дисклеймер: сущности, относящиеся к нашей платформе, далее в тексте называю, используя префикс cs-.Что в…

  • вторник, 29 апреля 2025 г. в 00:00:05
javascript
5 идей для accessibility-тестов, которые можно автоматизировать уже сегодня

ВведениеВ предыдущей статье рассмотрели, как быстро настроить Cypress и axe-core для запуска автоматических тестов доступности (подробнее здесь).Теперь время перейти к практике. Какие именно проверки стоит автоматизировать в первую очередь? На каких ошибках доступности можно поймать проблемы ещё до выхода на продакшн?В этой статье — 5 простых, но эффективных идей для автоматизированных accessibility-тестов, которые помогают системно повышать качество интерфейсов при минимальных затратах.1. Авто…

  • вторник, 29 апреля 2025 г. в 00:00:04
javascript
Как улучшить UX в PWA на React с помощью потокового Backend-Driven UI — личный опыт

Привет! Меня зовут Ярослав, я фронтенд-разработчик в Outlines Tech. В одном из PWA-проектов с Backend-Driven UI (BDUI) я столкнулся с проблемой: интерфейс загружался слишком медленно. Пользователи видели спиннер и ждали более 15 секунд, пока страница заработает: интерфейс не начинал функционировать, пока не приходили все данные. За это время большинство пользователей теряли терпение и просто закрывали вкладку.Медленная загрузка как конечный результат — меня не устроил. Это бесило, ведь при загр…

  • вторник, 29 апреля 2025 г. в 00:00:04
javascript
Паттерны проектирования Composable в Vue

Если вы уже освоили основы написания Composable в Vue, то следующий шаг — собрать коллекцию лучших и самых полезных паттернов, расширив свой инструментарий для решения задач:Паттерны для улучшения управления состояниемОрганизация Composable (не всегда нужен отдельный файл!)Улучшение опыта разработчика, например поддержка одновременно асинхронного и синхронного поведенияВ этой статье мы рассмотрим семь различных паттернов для написания более эффективных Composable.1. Паттерн Data Store (Хранили…

  • понедельник, 28 апреля 2025 г. в 00:00:09
javascript
О странностях Javascript

"JavaScript отстой, потому что '0' == 0!"— буквально каждый когда-либоДа, эта часть JavaScript действительно ужасна, но сегодня в любом проекте есть линтер, который тут же заворчит на вас за такой код.Вместо этого я хочу поговорить о более странных особенностях JavaScript — о таких, которые гораздо более коварные, чем эта ☝️ - о вещах, которые вы не найдете ни на r/ProgrammerHumor, ни в обычном учебнике по JavaScript.Все эти странности могут возникнуть в любом окружении JavaScri…

  • понедельник, 28 апреля 2025 г. в 00:00:07