Can I Use
Can I Use — это веб-сервис и база данных, предоставляющая информацию о поддержке веб-технологий (HTML, CSS, JavaScript, SVG и других) в различных браузерах и их версиях. Сервис позволяет разработчикам и дизайнерам оценить совместимость той или иной функции с целевой аудиторией пользователей, принимая обоснованные решения об использовании новых возможностей или необходимости применения полифиллов и альтернативных решений.
История
Сервис был запущен в 2009 году французским веб-разработчиком и дизайнером Алексисом Девуа (Alexis Deveria). Первоначально проект представлял собой простую таблицу с данными о поддержке CSS-свойств в основных браузерах. Идея создания возникла из практической потребности: разработчикам не хватало единого, актуального и наглядного источника информации о том, какие функции веб-стандартов уже работают в браузерах, а какие — нет.
С течением времени проект значительно расширился. В 2013 году исходный код сервиса был опубликован на GitHub под лицензией MIT, что позволило сообществу участвовать в его развитии и поддержке. К середине 2010-х годов Can I Use стал одним из ключевых инструментов в арсенале фронтенд-разработчиков по всему миру, наряду с такими ресурсами, как MDN Web Docs и CSS-Tricks.
Устройство и функциональность
Структура данных
Основой сервиса является база данных, в которой каждой функции (например, CSS-свойству grid, HTML-тегу <dialog> или JavaScript-методу Array.prototype.includes) сопоставлен набор данных о её поддержке в различных браузерах. Данные структурированы по следующим параметрам:
- Браузер: Chrome, Firefox, Safari, Edge, Opera, Samsung Internet, QQ Browser, Baidu Browser и другие, включая устаревшие версии (например, Internet Explorer).
- Версия браузера: Для каждой версии указывается статус поддержки (полная поддержка, частичная поддержка, поддержка с префиксом, отсутствие поддержки).
- Тип поддержки: Может включать флаги (необходимость включения в настройках браузера), префиксы (например,
-webkit-), полифиллы (ссылки на сторонние библиотеки, эмулирующие функциональность) и заметки (уточнения по особенностям реализации).
Интерфейс
Пользовательский интерфейс Can I Use минималистичен и ориентирован на быстрый поиск. Основные элементы:
- Строка поиска: Позволяет найти конкретную функцию по названию (например,
flexbox,async/await,intersection observer). - Таблица поддержки: Центральный элемент страницы. Представляет собой таблицу, где строки — это версии браузеров (сгруппированные по браузерам), а столбцы — статусы поддержки, обозначенные цветами:
- Зелёный: Полная поддержка.
- Жёлтый: Частичная поддержка или поддержка с префиксом.
- Красный: Отсутствие поддержки.
- Серый: Данные отсутствуют или браузер устарел.
- Панель настроек: Позволяет настроить отображение данных, например, выбрать регион (США, Европа, Азия, Россия и т.д.), указать долю рынка браузеров, включить/отключить устаревшие браузеры.
- Сводка: Краткая информация о глобальной поддержке функции (в процентах от всех пользователей интернета), а также ссылки на спецификации W3C и страницы MDN.
Ключевые возможности
- Глобальная статистика: Сервис использует данные о доле рынка браузеров от StatCounter, что позволяет рассчитать процент пользователей, которые могут использовать ту или иную функцию.
- Региональная статистика: Возможность фильтровать данные по странам и регионам. Например, в России доля Safari значительно ниже, чем в США, что может повлиять на решение о поддержке функций, зависящих от этого браузера.
- История версий: Можно просмотреть, начиная с какой версии браузера функция стала поддерживаться.
- Сравнение функций: Позволяет сравнивать поддержку нескольких функций на одной странице.
- API: Сервис предоставляет программный интерфейс (API), который позволяет интегрировать данные о совместимости в инструменты разработчика (например, в редакторы кода, системы сборки или линтеры).
Применение
Can I Use используется на всех этапах веб-разработки:
- Планирование: На этапе проектирования архитектуры приложения разработчики могут оценить, какие современные технологии (например, CSS Grid, Web Components, Service Workers) можно использовать без риска потерять значительную часть аудитории.
- Разработка: В процессе написания кода разработчик может быстро проверить, поддерживается ли выбранное свойство или API в целевых браузерах. Если поддержка отсутствует, принимается решение о добавлении полифилла или использовании альтернативного подхода.
- Тестирование: Данные Can I Use помогают составить матрицу совместимости для тестирования, определить, какие браузеры и версии необходимо проверить в первую очередь.
- Документация: Информация с сервиса часто цитируется в технической документации, статьях и руководствах как авторитетный источник данных о совместимости.
Критика и ограничения
Несмотря на широкую популярность, сервис имеет ряд ограничений:
- Зависимость от данных StatCounter: Данные о доле рынка браузеров, используемые для расчёта процента поддержки, могут не отражать реальную картину для конкретного проекта. Например, для корпоративного веб-приложения, используемого только в среде Windows с Internet Explorer 11, глобальная статистика будет бесполезна.
- Запаздывание данных: Обновление информации о поддержке новых функций в браузерах может происходить с некоторой задержкой, особенно для бета-версий и ночных сборок.
- Сложность интерпретации: Статус «частичная поддержка» может означать как незначительные баги, так и отсутствие ключевой функциональности, что требует дополнительного изучения заметок и комментариев.
- Отсутствие контекста: Сервис не учитывает особенности реализации в разных браузерах, которые могут влиять на производительность или поведение функции. Например, CSS-свойство
backdrop-filterможет быть поддержано, но работать с разной производительностью.
Альтернативы
Существуют и другие ресурсы, предоставляющие аналогичную информацию:
- MDN Browser Compatibility Tables: Встроенные таблицы совместимости на страницах документации MDN Web Docs. Данные собираются из того же источника, что и Can I Use, но представлены в более структурированном виде в контексте документации.
- Web Platform Tests: Проект по созданию кросс-браузерных тестов для веб-платформы. Данные о прохождении тестов могут дать более точную картину, чем субъективные оценки Can I Use.
- Browserslist: Инструмент командной строки и конфигурационный файл, который использует данные Can I Use для определения целевых браузеров на основе запросов (например,
> 1%,last 2 versions,not dead). Широко применяется в инструментах сборки (Autoprefixer, Babel, PostCSS).
Интересные факты
- Название сервиса является отсылкой к частому вопросу разработчиков: «Can I use this feature?» (Могу ли я использовать эту функцию?).
- Исходный код проекта написан на PHP и JavaScript. Он доступен для самостоятельного развёртывания и модификации.
- Данные Can I Use используются в качестве основы для многих других инструментов, включая Autoprefixer (автоматически добавляет вендорные префиксы к CSS) и Babel (транспилятор JavaScript).
Источники
- Официальный сайт проекта Can I Use.
- Репозиторий проекта на GitHub.
- Документация MDN Web Docs.
- Статистика StatCounter.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →