SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Архитектура  А/Б  тестирования:  
сделаи5  сам
Сергеи5  Аверин  
Badoo
• Социальная  сеть  для  знакомств  
• 195  миллионов  зарегистрированных  пользователей  
• 10  миллионов  пользователей  в  день  
• 2000+  серверов  
• 50  тыс.  динамических  запросов/сек  
• Разработка  в  Москве  и  Лондоне  
• MySQL,  PHP,  C/C++,  Linux,  nginx,  memcached  
• Много  своего,  в  т.  ч.  PINBA,  PHP-­‐FPM,  патчи  PHP,  PHPUnit,  MySQL
Для  кого  доклад?
Для  сайтов,  где  
• пользователи  идентифицированы  
• есть  возможность  долгосрочно  отслеживать  пользователя  
• пользователи  нужны  надолго,  и  заходят  на  сайт  периодически  
• нужны  более  сложные  методики  оценки  успеха,

чем  единоразовая  покупка/регистрация/заказ/звонок
Сложность
• Выше  среднего,  но  ничего  космического  тут  нет  
• Я  уверен,  что  вы  можете  сделать  то  же  самое  за  3  недели

силами  2—3  разработчиков  
• Для  небольших  сайтов  архитектура  будет  сильно  похожа  
• Результат  можно  измерять  в  реальной  прибыли
Зачем  нам  понадобились  A/B  тесты
Раньше  мы  запускали  фичу  в  маленькой  стране  и  сравнивали  
показатели  с  цифрами  до  запуска  или  в  соседних  странах  
Но…  мы  растем:  
• Для  всех  идей  стран  не  хватит  
• Нужно  выбрать  из  нескольких  похожих  вариантов  
• Хочется  более  достоверной  методики  оценки  
• В  самом  худшем  случае  урон  невелик
Почему  мы  сделали  свое
Мы  пробовали  чужое
• Смотрели  несколько  сторонних  продуктов  
• Выбрали  и  использовали  Optimizely…
Проблемы  Optimizely  и  подобных  систем
• jQuery  
• Внешний  CDN  
• JS-­‐совместимость  с  нашим  кодом  
• «Прыгающие»  страницы  
• Нет  локализации,  поддержки  разных  языков  
• Выбор  пользователей  по  языку,  полу  —  все  сам,  в  PHP-­‐коде  
• Ограниченное  применение  —  нет  API,  только  JS-­‐код
Но  главное  —  не  это
А  то,  что  анализируем  только  клики
Большинство  докладов  про  А/Б  тестирование  —  из  мира

e-­‐commerce:  
• анализируем  посещаемость  трех  страниц  —  главной,  каталога  
товаров,  страницы  товара  
• анализируем  воронку  продаж  (где  пользователь  уходит)  
• улучшаем  продажи  (клики  по  кнопке  «заказать»)  
• Купил?  Следующий!
Мы  —  не  интернет  магазин
• Анализируем  поведение  —  частота  заходов,  время  на  сайте,  

кол-­‐во  чатов,  заливка  фото…  
• Нужна  статистика  по  большему  количеству  параметров  
• И  за  больший  срок,  чем  от  момента  захода  на  сайт  до  клика  по  
цели  
• Продажи  —  не  самое  важное
Чем  свое  лучше  и  хуже
Плюсы  
• Большая  применимость  
• Большие  нагрузки  
• Никакого  JS  с  внешнего  
CDN  
• Весь  ваш  функционал  
локализации/переменных  
доступен  
!
!

Минусы  
• Надо  кодить  
• Нагрузка  теперь  наша  
• Статистику  считать  самим  
• Сделать  свой  WYSIWYG-­‐
интерфейс  редактирования  
сложно  (но  и  не  нужно)
Как  у  нас  устроены  тесты
Письмо  с  плохим  кликрейтом
Вариант  для  всех
Вариант  для  мальчиков
Вариант  для  девочек
Структура  теста
Одно  исследование  с  определенными  сроками

Набор  критериев,  
описывающих  аудиторию  
с  одинаковым  поведением  
(группы  не  пересекаются)

Тест

...

Группа

Контрольный
вариант

Вариант

Исходный  вариант  шаблона/поведения

...

Вариант

Группа

Контрольный
вариант

Вариант

...

Вариант

Измененный  вариант  шаблона/поведения
Структура  теста
Тест

Мальчики

Контрольный
вариант

Красная
кнопка

Девочки

Зеленый
заголовок

Контрольный
вариант

Красная
кнопка

Котики
Результаты
Группа

Кликов

Кликрейт

2000

100

5  %

Красная  кнопка

2000

110

5,5  %  (+0,5  %)

Зеленый  заголовок 2000

130

6,5  %  (+1,5  %)

Контрольный
Девочки

Отправлено

Контрольный
Мальчики  

Вариант

1000

35

3,5  %

Красная  кнопка

1000

30

3  %  (−0,5  %)

Котики

1000

50

5  %  (+1,5  %)
С  высоты  птичьего  полета
Хотелось,  что  бы  это  работало  так:
1)  Заходим  на  страницу,  выбираем  на  ней  текст,  создаем  несколько  
версий  текста.  Или  выбираем  где-­‐то  в  бекофисе  константу,

создаем  тест  с  несколькими  значениями  этой  константы.
Хотелось,  что  бы  это  работало  так:
1)  Заходим  на  страницу,  выбираем  на  ней  текст,  создаем  несколько  
версий  текста.  Или  выбираем  где-­‐то  в  бекофисе  константу,

создаем  тест  с  несколькими  значениями  этой  константы.  
1)  Подготавливаем  несколько  шаблонов/css-­‐файлов/значений  
2)  Настраиваем  параметры  теста  в  бекофисе  
3)  Вписываем  в  код  выбор  шаблона  и  привязку  его  к  пользователю  
4)  Выбираем  метрику,  по  которой  мы  будем  оценивать  результат  
5)  Прогоняем  тест,  собирая  эту  метрику  и  кто  какой  шаблон  видел  
6)  Берем  кого-­‐то  умного  и  анализируем  результаты
А  теперь  архитектура
А  теперь  архитектура
Сделаем  сначала  систему  сбора  статистики
API

Scribe-транспорт

Разборщик
статистики

База данных
API
Функция  посылки  событий  
• просто  пакует  данные+текущую  дату,  и  передает  в  транспорт  
!
Stats::sendEvent($event_type, $user_id)	
Stats::sendEvent($event_type, $user_id, $param)

тип  события,  строка

значение,  например,  
«проголосовал  за»  —  1  
«проголосовал  против»  —  0
Scribe-­‐транспорт
100  000  000+  записей  в  день

файлы  с  данными,  
новый  файл  каждые  2  минуты,  
каждое  событие  в  отдельной  папке

не  теряем  данные
Scribeколлектор

PHP-бекенды
Скрипт-­‐процессор  статистики
• Разбирает  эти  файлы,  и  кладет  в  БД  
• Мультипоточный  разбор  с  блокировками  файлов  (в  PHP  —  flock())  
• События  каждого  типа  —  в  отдельные  таблицы  
• По  одной  таблице  на  день  
• Выкидываем  повторные  события  там,  где  это  можно  
• Там,  где  нельзя  —  делаем  BULK  INSERT’ы  
• Для  некоторых  —  агрегируем  в  памяти/файлах  и  пишем  результат
Скрипт-­‐процессор  статистики
БД
• Подойдет  обычная  SQL-­‐СУБД,  например,  MySQL  или  Postgres  
• Желательно  отдельный  сервер,  с  большим  кол-­‐вом  ядер  
• Для  MySQL  лучше  использовать  XtraDB
API

Scribe-транспорт

Разборщик
статистики

База данных
Дополним  схему  до  
архитектуры  А/Б  тестирования
API
статистики

Scribe-транспорт

Разборщик
статистики

БД
статистики
БД тестов

API
статистики

Scribe-транспорт

Разборщик
статистики

БД
статистики
БД  тестов
• id  (сквозная  нумерация)  
• имя  
• критерии  выбора  пользователей

(пол,  страна,  язык…)

Тест

...

Группа

Контрольный
вариант

Вариант

• id  (сквозная  нумерация)  
• имя  
• даты  начала-­‐конца  
• статус

...

Вариант

Группа

Контрольный
вариант

Вариант

...

Вариант

• id  (сквозная  нумерация)  
• имя  
• значение  переменной/имя  шаблона
БД тестов

API
статистики

Scribe-транспорт

Бекофисинтерфейс

Разборщик
статистики

БД
статистики
Бекофис-­‐интерфейс
Создание/редактирование  тестов  
• проверяет  непересекаемость  групп  
• требует  указать  дату  начала/конца  
Управление  тестами  
Дебаг:  
• покажи  мне  как  выглядит  вариант  X?  
• какой  вариант  был  для  юзера  Z?  
• попадет  ли  в  тест  юзер  Y?
API
тестов

API
статистики

Scribe-транспорт

БД тестов

Бекофисинтерфейс

Разборщик
статистики

БД
статистики
API
тестов

API
статистики

Memcached

Scribe-транспорт

БД тестов

Бекофисинтерфейс

Разборщик
статистики

БД
статистики
API
тестов

API
статистики

Memcached

Scribe-транспорт

БД тестов

Бекофисинтерфейс

Разборщик
статистики

БД
статистики
API  тестов
ABTests::hit($User, $page)	

• Выбирает  тест/группу/вариант  для  пользователя  и  страницы,

где  он  находится  (если  есть  подходящие)  
• Отправляет  эти  данные  в  статистику  как  факт  просмотра  
определенного  варианта  
• Возвращает  либо  null  (не  в  тесте),  либо  заданное  в  варианте  
значение  —  имя  шаблона/тип  поведения/значение  переменной  
• У  нас  доходит  до  3  млн  вызовов  в  день,  где  возвращается  не  null
API  тестов
Выбирает  пользователю  тест
Пользователь  может  попасть  
только  в  одну  группу,

т.  к.  они  не  пересекаются

Тест

...

Группа

Контрольный
вариант

сравнивать  результаты  можно  
только  с    пользователями  той  
же  группы,  а  не  со  всеми  
остальными

Вариант

...

Вариант

Группа

Контрольный
вариант

Вариант

...

Вариант

Равномерное  распределение
API  тестов:  выбираем  тест
!

Тест

...

Тест

!

Тестировать  надо  так,  чтобы  не  было  взаимовлияния  тестов  
• $test_id  =  $user_id  %  $num_running_tests  —  плохо  
При  изменении  кол-­‐ва  запущенных  тестов  пользователи  должны  
как  можно  меньше  перемещаться  между  тестами  
• consistent  hashing  
• заранее  сделать  несколько  наборов  пользователей  
• выбирать  и  помечать  тех,  кто  еще  ни  в  каком  тесте
API  тестов:  выбираем  вариант
!

Контрольный
вариант

Вариант

...

Вариант

!

• по  остатку  от  деления  $user_id  %  $num_variants  —  не  хорошо  
• по  crc32($user_id)  %  $num_variants  —  вполне  хорошее
Скрипт-­‐процессор  статистики
• Дорабатываем  скрипт  для  создания  таблицы  фактов  участия  в  
тесте  в  БД  статистики  
• Можно  сделать  подсчет  хитов
API
тестов

API
статистики

Memcached

Scribe-транспорт

БД тестов

Бекофисинтерфейс

Разборщик
статистики

БД
статистики
API
тестов

API
статистики

Memcached

Scribe-транспорт

БД тестов

Бекофисинтерфейс

Разборщик
статистики

БД
статистики

Делаете  скрипт  копирования  тестов  в  базу  со  статистикой
API
тестов

API
статистики

Memcached

Scribe-транспорт

БД тестов

Бекофисинтерфейс

Разборщик
статистики

БД
статистики

Интерфейс
анализа
Интерфейс  для  аналитика
• Программа-­‐клиент  для  MySQL  
• JOIN  статистики  с  таблицей  фактов  WHERE  test_id  =  2  GROUP  BY  
variant_id  
• Скрипт-­‐генератор  отчетов  
• Бекофис-­‐страница  с  графиками  
• Система  бизнес-­‐аналитики  
•…
Как  это  работает
Как  это  работает
• Распихиваете  по  коду  сбор  статистики  
• В  коде  обработки  запроса:  
• дергаете  функцию  выбора  варианта  
• null  и  контрольный  вариант  —  показываете  то  же,  что  и  обычно  
• другое  —  показываете  новый  шаблон/вариант  поведения  
• Настраиваете  тест  в  интерфейсе,  прогоняем  тест  
• В  БД  получаем  таблицы  со  статистикой,  фактами  просмотра  
пользователями  вариантов  и  таблицы  с  описаниями  тестов  
• Анализируем  результаты
Оценка  результатов
• Условия  теста  не  должны  меняться  от  начала  до  конца  
• Проверяйте  достоверность  результатов  (G-­‐test  confidence)  
• Переводы  часто  портят  результаты  —  делайте  группы  по  языкам  
• Проверяйте  гомогенность  групп  по  2—3  параметрам  
• Иногда  для  разных  аудиторий  побеждают  разные  варианты  —  не  
стесняйтесь  слать  мальчикам  одни  письма,  а  девочкам  другие  
(только  без  фанатизма)  
• Идея  смотреть  только  кликрейт  —  так  себе,  выбирайте  несколько  
параметров
Много  интересного:  
http://habrahabr.ru/company/badoo/blog/

Спасибо!  
Вопросы?
@ryba_xek
ryba.xek
s@averin.ru

Слайды, mind map,
предыдущие доклады:	

http://averin.ru/slides/

Contenu connexe

Tendances

Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Ontico
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Badoo Development
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Anton Baranov
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, BadooOntico
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ontico
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеNikolay Sivko
 
Мониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаМониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаNikolay Sivko
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Ontico
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaRoman Zykov
 

Tendances (17)

Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
 
Мониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаМониторинг качества работы вашего проекта
Мониторинг качества работы вашего проекта
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
 
Sivko
SivkoSivko
Sivko
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 

En vedette

Стартап: формирование технической команды
Стартап: формирование технической командыСтартап: формирование технической команды
Стартап: формирование технической командыSergey Xek
 
Ездим на батарейках
Ездим на батарейкахЕздим на батарейках
Ездим на батарейкахSergey Xek
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Voto de Gilmar Mendes em 15/09/2005
Voto de Gilmar Mendes em 15/09/2005Voto de Gilmar Mendes em 15/09/2005
Voto de Gilmar Mendes em 15/09/2005Miguel Rosario
 
HTML an introduction
HTML an introductionHTML an introduction
HTML an introductionNiamh Foley
 
MBA724 s6 w1 experimental design
MBA724 s6 w1 experimental designMBA724 s6 w1 experimental design
MBA724 s6 w1 experimental designRachel Chung
 
長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!
長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!
長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!長野市議会議員小泉一真
 
Nutrición vs Alimentación
Nutrición vs AlimentaciónNutrición vs Alimentación
Nutrición vs Alimentacióncharito ybarra
 
Real HCG Drops For Real Benefits
Real HCG Drops For Real BenefitsReal HCG Drops For Real Benefits
Real HCG Drops For Real Benefitssocialbook
 
Myppt 100624015031-phpapp02
Myppt 100624015031-phpapp02Myppt 100624015031-phpapp02
Myppt 100624015031-phpapp02Bhagabat Barik
 
All you need know about testing
All you need know about testingAll you need know about testing
All you need know about testingJorge Barroso
 

En vedette (20)

Стартап: формирование технической команды
Стартап: формирование технической командыСтартап: формирование технической команды
Стартап: формирование технической команды
 
Ездим на батарейках
Ездим на батарейкахЕздим на батарейках
Ездим на батарейках
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Voto de Gilmar Mendes em 15/09/2005
Voto de Gilmar Mendes em 15/09/2005Voto de Gilmar Mendes em 15/09/2005
Voto de Gilmar Mendes em 15/09/2005
 
Pt 2
Pt 2Pt 2
Pt 2
 
HTML an introduction
HTML an introductionHTML an introduction
HTML an introduction
 
M robby f_mi2b_tugas 2
M robby f_mi2b_tugas 2M robby f_mi2b_tugas 2
M robby f_mi2b_tugas 2
 
S t o r y b o a r d
S t o r y b o a r dS t o r y b o a r d
S t o r y b o a r d
 
MBA724 s6 w1 experimental design
MBA724 s6 w1 experimental designMBA724 s6 w1 experimental design
MBA724 s6 w1 experimental design
 
直接照会により公開された芸術監督データ
直接照会により公開された芸術監督データ直接照会により公開された芸術監督データ
直接照会により公開された芸術監督データ
 
長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!
長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!
長野市大岡地区 芦沼北菜園付き住宅が入居しやすくなります!
 
Nutrición vs Alimentación
Nutrición vs AlimentaciónNutrición vs Alimentación
Nutrición vs Alimentación
 
use WACS;
use WACS;use WACS;
use WACS;
 
Real HCG Drops For Real Benefits
Real HCG Drops For Real BenefitsReal HCG Drops For Real Benefits
Real HCG Drops For Real Benefits
 
W.cholamjiak
W.cholamjiakW.cholamjiak
W.cholamjiak
 
Myppt 100624015031-phpapp02
Myppt 100624015031-phpapp02Myppt 100624015031-phpapp02
Myppt 100624015031-phpapp02
 
Kudavi 2.4.2016
Kudavi 2.4.2016Kudavi 2.4.2016
Kudavi 2.4.2016
 
How to hire a relief Dr without getting into Jeopardy!
How to hire a relief Dr without getting into Jeopardy!How to hire a relief Dr without getting into Jeopardy!
How to hire a relief Dr without getting into Jeopardy!
 
All you need know about testing
All you need know about testingAll you need know about testing
All you need know about testing
 
Global warming
Global warmingGlobal warming
Global warming
 

Similaire à Архитектура А/Б тестирования: сделай сам

Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"
Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"
Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"Fwdays
 
Sem ревизия сайта, ревизия оптимизации сайта
Sem ревизия сайта, ревизия оптимизации сайтаSem ревизия сайта, ревизия оптимизации сайта
Sem ревизия сайта, ревизия оптимизации сайтаОлександр Мілютін
 
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3NaZapad
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Ontico
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015Alexandr Petrov
 
хранение и обработка больших объемов данных в рекомендательном движке сайта I...
хранение и обработка больших объемов данных в рекомендательном движке сайта I...хранение и обработка больших объемов данных в рекомендательном движке сайта I...
хранение и обработка больших объемов данных в рекомендательном движке сайта I...Ontico
 
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниАлександр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниGlobal Innovation Labs
 
Управление крупными seo-проектами
Управление крупными seo-проектамиУправление крупными seo-проектами
Управление крупными seo-проектамиЛеонид Гроховский
 
Построение системы мониторинга данных для сайта
Построение системы мониторинга данных для сайтаПостроение системы мониторинга данных для сайта
Построение системы мониторинга данных для сайтаNetpeak
 
AmberData: Dmp for clients
AmberData: Dmp for clientsAmberData: Dmp for clients
AmberData: Dmp for clientsAmberData
 
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...borovoystudio
 
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...borovoystudio
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 
Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Комплето
 
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (..."Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...AvitoTech
 
Ozon в высшей школе экономики часть 4
Ozon в высшей школе экономики часть 4Ozon в высшей школе экономики часть 4
Ozon в высшей школе экономики часть 4Roman Zykov
 
DMP for Publishers
DMP for PublishersDMP for Publishers
DMP for PublishersAmberData
 

Similaire à Архитектура А/Б тестирования: сделай сам (20)

Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"
Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"
Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"
 
Sem ревизия сайта, ревизия оптимизации сайта
Sem ревизия сайта, ревизия оптимизации сайтаSem ревизия сайта, ревизия оптимизации сайта
Sem ревизия сайта, ревизия оптимизации сайта
 
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
хранение и обработка больших объемов данных в рекомендательном движке сайта I...
хранение и обработка больших объемов данных в рекомендательном движке сайта I...хранение и обработка больших объемов данных в рекомендательном движке сайта I...
хранение и обработка больших объемов данных в рекомендательном движке сайта I...
 
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниАлександр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
 
Управление крупными seo-проектами
Управление крупными seo-проектамиУправление крупными seo-проектами
Управление крупными seo-проектами
 
Построение системы мониторинга данных для сайта
Построение системы мониторинга данных для сайтаПостроение системы мониторинга данных для сайта
Построение системы мониторинга данных для сайта
 
3 Все о разработке интернет проектов
3 Все о разработке интернет проектов3 Все о разработке интернет проектов
3 Все о разработке интернет проектов
 
AmberData: Dmp for clients
AmberData: Dmp for clientsAmberData: Dmp for clients
AmberData: Dmp for clients
 
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
 
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 
Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)
 
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (..."Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
 
Ozon в высшей школе экономики часть 4
Ozon в высшей школе экономики часть 4Ozon в высшей школе экономики часть 4
Ozon в высшей школе экономики часть 4
 
DMP for Publishers
DMP for PublishersDMP for Publishers
DMP for Publishers
 
Сравнение инструментов для построения отчетов
Сравнение инструментов для построения отчетовСравнение инструментов для построения отчетов
Сравнение инструментов для построения отчетов
 

Plus de Sergey Xek

Формирование технической команды на старте
Формирование технической команды на старте Формирование технической команды на старте
Формирование технической команды на старте Sergey Xek
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 
То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
 То, что вы хотели знать о HandlerSocket, но не смогли нагуглить То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьSergey Xek
 
MySQL+HandlerSocket=NoSQL
MySQL+HandlerSocket=NoSQL MySQL+HandlerSocket=NoSQL
MySQL+HandlerSocket=NoSQL Sergey Xek
 
Mysql+handlersocket=nosql
Mysql+handlersocket=nosqlMysql+handlersocket=nosql
Mysql+handlersocket=nosqlSergey Xek
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнSergey Xek
 
Pconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяныPconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяныSergey Xek
 
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...Sergey Xek
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
 

Plus de Sergey Xek (12)

Формирование технической команды на старте
Формирование технической команды на старте Формирование технической команды на старте
Формирование технической команды на старте
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
 То, что вы хотели знать о HandlerSocket, но не смогли нагуглить То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
 
MySQL+HandlerSocket=NoSQL
MySQL+HandlerSocket=NoSQL MySQL+HandlerSocket=NoSQL
MySQL+HandlerSocket=NoSQL
 
Mysql+handlersocket=nosql
Mysql+handlersocket=nosqlMysql+handlersocket=nosql
Mysql+handlersocket=nosql
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
 
Pconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяныPconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяны
 
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 

Архитектура А/Б тестирования: сделай сам