Проверяет понимание того, как на фронтенде реализуется A/B-тестирование: как пользователь попадает в группу и как выбирается вариант интерфейса.
A/B-тестирование на фронтенде — это способ показать разным группам пользователей разные варианты интерфейса и сравнить метрики. Ключевая задача — стабильно и равномерно распределить пользователей по группам, чтобы один и тот же человек всегда видел один и тот же вариант.
Обычно используется детерминированное хэширование: берётся стабильный идентификатор (user id, anonymous id из cookie) и хэшируется вместе с названием эксперимента. Остаток от деления на 100 даёт число от 0 до 99, по которому и определяется группа.
function getVariant(userId, experiment) {
const hash = simpleHash(`${experiment}:${userId}`);
const bucket = hash % 100;
if (bucket < 50) return 'A';
return 'B';
}
// simpleHash — любая стабильная функция, например FNV-1a
function simpleHash(str) {
let h = 2166136261;
for (let i = 0; i < str.length; i++) {
h ^= str.charCodeAt(i);
h = Math.imul(h, 16777619);
}
return Math.abs(h);
}const variant = useExperiment('checkout_button');
return variant === 'B'
? <Button color="green">Купить сейчас</Button>
: <Button color="blue">Купить</Button>;Важно избегать «мигания» интерфейса: если вариант приходит с сервера, его лучше отдать вместе с HTML или до первого рендера, иначе пользователь увидит смену UI.
Итог: A/B-тестирование на фронте строится на стабильном распределении пользователей по группам и feature-флагах, которые выбирают вариант интерфейса. Подход полезен, когда нужно проверять гипотезы по UI и метрикам без полноценного релиза на всех пользователей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию