Pull to refresh
5
0
Кирилл @AkpoFlash

User

Send message

Как устроено A/B-тестирование в Авито

Reading time7 min
Views78K

Всем привет. Меня зовут Данила, я работаю в команде, которая развивает аналитическую инфраструктуру в Авито. Центральное место в этой инфраструктуре занимает А/B-тестирование.


А/B эксперименты — ключевой инструмент принятия решений в Авито. В нашем цикле продуктовой разработки А/B-тест является обязательным этапом. Мы проверяем каждую гипотезу и выкатываем только позитивные изменения.


Мы собираем сотни метрик и умеем детализировать их до бизнес-разрезов: вертикали, регионы, авторизованные пользователи и т. д. Мы делаем это автоматизированно с помощью единой платформы для экспериментов. В статье я достаточно подробно расскажу, как платформа устроена и мы с вами погрузимся в некоторые интересные технические детали.


Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments35

Как у нас устроено A/Б-тестирование. Лекция Яндекса

Reading time12 min
Views42K
A/Б-тестирование на сервисах Яндекса проводится постоянно. «Раскатить на такую-то долю аудитории» и посмотреть на реакцию людей — настолько стандартная практика, что ни у кого в команде не возникает вопроса, зачем это нужно. А чтобы не было проблем с самим тестированием, у нас есть специальная инфраструктура для экспериментов. Подробности рассказывают разработчики Сергей Мыц и Данил Валгушев.


Сергей:
— Я попробую упрощенно описать задачу A/Б-тестирования. Есть абстрактная система с пользователями, в нее мы вносим какие-то изменения, и нужно уметь измерять в ней пользу. Пока все просто, но слишком абстрактно. Пример. Есть веб-сервис по сравнению пары фотографий котов. Пользователь должен выбрать наиболее понравившуюся фотографию. При этом он может выбрать не только левый или правый снимок, но и «против всех». Значит, мы подобрали картинки не очень хорошо. Наша задача — обоснованно улучшать сервис, доказывая это цифрами.
Total votes 51: ↑50 and ↓1+49
Comments2

Многорукие бандиты в рекомендациях

Reading time9 min
Views23K

Всем привет! Меня зовут Миша Каменщиков, я занимаюсь Data Science и разработкой микросервисов в команде рекомендаций Авито. В этой статье я расскажу про наши рекомендации похожих объявлений и о том, как мы улучшаем их при помощи многоруких бандитов. С докладом на эту тему я выступал на конференции Highload++ Siberia и на мероприятии «Data & Science: Маркетинг».


image
Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments9

Hello, Word! Разрабатываем браузерное расширение в 2021-м

Reading time5 min
Views18K
Привет!

Меня зовут Саша Коновалов, я разработчик в компании Oxonit и наставник на программе «Мидл фронтенд-разработчик» в Яндекс.Практикуме.

На примере разработки расширения «Hello, Word» я расскажу, как разрабатывать кроссбраузерное расширение со знаниями современного фронтенда:

  • для чего нужно кроссбраузерное расширение;
  • как его разработать под разные браузеры;
  • модульность кода, как переиспользовать компоненты и как современный фронтенд помогает в разработке расширений;
  • какие инструменты можно использовать для сборки и публикации расширений (webpack, web-ext).

Если вам интересно посмотреть исходники, я разместил их на GitHub.

Структура расширения, о котором я расскажу в статье, близка к проекту SponsorBlock. Этот проект вдохновлял меня во время работы над собственным.

Итак, создадим расширение – Hello, Word!


Hello, Word — это расширение для перевода и запоминания слов. Оно стало прототипом моего пет-проекта Wordzzz, поэтому в посте я буду приводить примеры из него.


Рисунок 1. Описание функциональности
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments11

Реализация архитектуры Redux на MobX. Часть 2: «Пример на MobX»

Reading time12 min
Views8.2K

В этой части я опишу, приблизительно какую архитектуру использую в своих проектах. MobX взят, так как он довольно простой и удобный, из коробки есть готовая реализация паттерна Observer, автоматическая мемоизация и автоматическое обновление компонентов при изменении состояния хранилища.

Я много раз читал, как кто-то попробовал MobX, у него код получился запутанным с не контролируемыми изменениями, после чего он продолжил писать на Redux. Для MobX нет рекомендованной архитектуры. Но при использовании и соблюдении в MobX строгой и однообразной (имеется ввиду одинаковой в различных участках проекта) архитектуры, можно получить понятный код с контролируемыми изменениями в сколь угодно большом проекте. Я опишу один из вариантов, как этого добиться.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments55

Переезд IT-шника в Германию: от А до Я

Reading time20 min
Views98K
Привет.

Germany Blue CardВ этом посте я хочу подробно рассказать о моём опыте переезда на работу PHP-разработчиком в Германию — от момента, когда есть просто желание переехать, но не знаешь что и как делать, до момента, когда уже переехал, вселился в квартиру и получил вид на жительство. Кроме того, в конце поста я приведу немного полезной информации и ссылок по переезду в некоторые другие страны.

Ещё с универа я понимал, что в Украине ловить нечего и надо валить. В течение нескольких лет я исследовал вопрос эмиграции: читал блоги, форумы, сообщества, общался с друзьями и знакомыми, которые могли мне рассказать что-то новое и, естественно, за это время, учитывая и сам переезд, у меня накопился определённый багаж информации, которым и хочется поделиться.

Итак, если вы имеете IT-шное образование и вам интересна идея сваливания из печальной пост-совковой реальности, прошу под кат.
Читать дальше →
Total votes 211: ↑189 and ↓22+167
Comments163

Переезд инженера в Германию: «Голубая карта», налоги, дети

Reading time15 min
Views102K


Для тех, кто хочет работать за границей, Германия — хороший вариант. Европейское расположение, всего несколько часов полета и относительно дешевые билеты — можно навещать родителей по выходным. Германия обязательно попадает в топ стран для релокейта, а среди русских программистов — вообще вторая по популярности страна для переезда.


Топ-5 стран по количеству переехавших российских инженеров в тысячах, Amazing Hiring, 2020
*около 30% инженеров не открывают своих данных для открытого поиска.


Стоит ли Германия релокейта, и что ждет тех, кто переезжает не один? В нашем сегодняшнем материале — плюсы и минусы переезда в страну пива и брецелей.
Читать дальше →
Total votes 58: ↑48 and ↓10+38
Comments229

Data Science для гуманитариев: что такое «data»

Reading time7 min
Views10K

Размышления об информации, памяти, аналитике и распределениях


Все, что воспринимают наши чувства, — это данные, хотя их хранение в наших черепушках оставляет желать лучшего. Записать это немного надежнее, особенно когда мы записываем это на компьютере. Когда эти записи хорошо организованы, мы называем их данными… хотя я видел, как некоторые ужасно организованные электронные каракули получают то же имя. Я не уверен, почему некоторые люди произносят слово data так, как будто оно имеет заглавную букву D.

Почему мы произносим data с большой буквы?

Нам нужно научиться быть непочтительно прагматичными в отношении данных, поэтому эта статья поможет новичкам заглянуть за кулисы и помочь практикующим объяснить основы новичкам, у которых проявляются симптомы поклонения данным.

Смысл и смыслы


Если вы начнете свое путешествие с покупки наборов данных в Интернете, вы рискуете забыть, откуда они берутся. Я начну с нуля, чтобы показать вам, что вы можете делать данные в любое время и в любом месте.

Вот несколько постоянных обитателей моей кладовой, расставленных на полу.

image

Эта фотография представляет собой данные — она хранится как информация, которую ваше устройство использует для отображения красивых цветов.

Давайте разберемся в том, на что мы смотрим. У нас есть бесконечные варианты того, на что обращать внимание и помнить. Вот что я вижу, когда смотрю на продукты.

image

Если вы закрываете глаза, вы помните каждую деталь того, что вы только что видели? Нет? И я нет. Вот почему мы собираем данные. Если бы мы могли помнить и обрабатывать это безупречно в наших головах, в этом не было бы необходимости. Интернет мог быть одним отшельником в пещере, рассказывая обо всех твитах человечества и прекрасно передавая каждую из наших миллиардов фотографий кошек.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments0

65 бесплатных курсов по Machine Learning от ведущих университетов мира

Reading time3 min
Views27K
image

Картинка отсюда.

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments4

Как Авито выявляет мошенников и борется с фродом

Reading time11 min
Views181K

Привет, Хабр. Я Игорь, руководитель команды, которая борется с мошенниками на Авито. Сегодня поговорим про вечную битву с негодяями, которые пытаются и даже иногда обманывают интернет-покупателей с помощью доставки товаров.


Читать дальше →
Total votes 97: ↑94 and ↓3+91
Comments393

О хранении JWT токенов в браузерах

Reading time3 min
Views62K

Открытый стандарт JWT официально появился в 2015 (rfc7519) обещая интересные особенности и широкие перспективы. Правильное хранение Access токена является жизненно важным вопросов при построении системы авторизации и аутентификации в современном Web, где становятся все популярнее сайты, построенные по технологии SPA.

Неправильное хранение токенов ведет к их краже и переиспользованию злоумышленниками.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments102

Ведение Telegram-канала с помощью GitHub Actions

Reading time11 min
Views12K


Наверное каждому разработчику хотя бы раз в жизни приходила идея что-нибудь автоматизировать. Ведь если есть возможность избавиться от рутины, то грех ей не воспользоваться.


Для меня эта идея стала основой многих собственных разработок, начиная с программ для решения Судоку, подсчёта времени нахождения за компьютером, имитации работы пользователя ПК с помощью самописных скриптов (всё это ещё в давние времена), и заканчивая более сложными проектами.


И вот, среди прочих родилась простая идея: "А почему бы не автоматизировать отслеживание новых выпусков ИТ-подкастов с помощью Telegram-бота и GitHub Actions? Чтобы просто подписаться на telegram-канал и получать актуальные выпуски подкастов по мере их выхода.


Конечно, можно скачать специализированные приложения, типа "Poket Casts", либо подписаться на RSS, но лично для меня использование Telegram-канала является самым удобным, простым и привычным.


Так был создан telegram-канал @awesome_russian_podcasts, куда в автоматическом режиме публикуются новые выпуски множества ИТ-подкастов, собранных в моём репозитории. Собственно, о процессе создания этого канала (его техническую часть) я и хочу рассказать далее.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments1

Популярные ошибки в английском среди IT-специалистов. Часть 2: Произношение

Reading time3 min
Views20K


Моя статья «Популярные ошибки в английском среди IT-специалистов» собрала много комментариев с полезными дополнениями. И я решила выпустить вторую часть, теперь посвященную Произношению.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments69

Практическое руководство по борьбе с утечками памяти в Node.js

Reading time8 min
Views20K
Утечки памяти похожи на сущности, паразитирующие на приложении. Они незаметно проникают в системы, поначалу не принося никакого вреда. Но если утечка оказывается достаточно сильной — она способна довести приложение до катастрофы. Например — сильно его замедлить или попросту «убить».



Автор статьи, перевод которой мы сегодня публикуем, предлагает поговорить об утечках памяти в JavaScript. В частности, речь пойдёт об управлении памятью в JavaScript, о том, как идентифицировать утечки памяти в реальных приложениях, и о том, как с бороться с утечками памяти.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments5

Intersection Observer API: примеры использования

Reading time7 min
Views80K


Доброго времени суток, друзья!

Обзор


Intersection Observer API (IOA) позволяет приложению асинхронно наблюдать за пересечением элемента (target) с его родителем (root) или областью просмотра (viewport). Другими словами, этот API обеспечивает вызов определенной функции каждый раз при пересечении целевого элемента с root или viewport.

Примеры использования:

  • «ленивая» или отложенная загрузка изображений
  • бесконечная прокрутка страницы
  • получение информации о видимости рекламы для целей расчета стоимости показов
  • запуск процесса или анимации, находящихся в поле зрения пользователя

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments4

Система управления Ansible

Reading time25 min
Views236K


Представьте себе, что вам нужно управлять парком серверов, расположенных к тому же в разных географических точках. Каждый из этих серверов требует настройки, регулярного обновления и мониторинга. Конечно, для решения этих задач можно воспользоваться самым простым способом: подключиться к каждому серверу по ssh и внести необходимые изменения. При всей своей простоте этот способ сопряжен с некоторыми трудностями: он чрезвычайно трудоемок, а на выполнение однообразных операций уходит очень много времени.

Чтобы упростить процессы настройки и конфигурирования серверов, можно также писать shell-скрипты. Но и этот способ вряд ли можно назвать совершенным. Скрипты нужно постоянно изменять, подстраивая их под каждую новую задачу. При их написании необходимо учитывать различие операционных систем и версий. Не будем забывать и о том, что отладка скриптов отнимает много усилий и забирает немало времени.

Оптимальным вариантом решения описанных проблем является внедрение системы удаленного управления конфигурацией. В таких системах достаточно лишь описать нужное состояние управляемого узла. Система должна сама определить, что нужно сделать для достижения этого состояния, и осуществит все необходимые действия.

Со всеми сложностями, о которых идет речь выше, мы хорошо знакомы на собственном опыте: у нас имеется 10 точек присутствия с NS-серверами, расположенные в разных точках планеты. На них необходимо регулярно вносить различные изменения: обновлять операционную систему, устанавливать и обновлять различное ПО, изменять конфигурцию и т.п. Мы решили все эти операции автоматизировать и внедрить систему удаленного управления конфигурациями. Изучив имеющиеся решения, мы остановили свой выбор на Ansible.

В этой статье мы бы хотели подробно рассказать о его возможностях этого инструмента управления конфигурациями и поделиться собственным опытом его использования.
Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments49

15 вещей, которые вы должны знать об Ansible

Reading time9 min
Views76K
Предлагаю читателям «Хабрахабра» перевод опубликованной на codeheaven.io статьи «15 Things You Should Know About Ansible» за авторством Marlon Bernardes.

В последнее время я много работал с Ansible и решил поделиться некоторыми вещами, которые выучил по пути. Ниже вы найдете список из 15 вещей, которые, как я думаю, вы должны знать об Ansible. Что-то пропустил? Просто оставьте комментарий и поделитесь вашими личными советами.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments11

Apache Kafka – мой конспект

Reading time9 min
Views326K
Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

— Тема (Topic)
— Подписчики (consumer)
— Издатель (producer)
— Группа (group), раздел (partition)
— Потоки (streams)

Kafka — основное


При изучении Kafka возникали вопросы, ответы на которые мне приходилось эксперементально получать на примерах, вот это и изложено в этом конспекте. Как стартовать и с чего начать я дам одну из ссылок ниже в материалах.

Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments10

Шпаргалки по безопасности: Nodejs

Reading time11 min
Views16K


Довольно много уже было сказано о популярности NodeJS. Рост количества приложений очевиден – NodeJS довольно прост в освоении, имеет огромное количество библиотек, а также динамично развивающуюся экосистему.

Мы подготовили рекомендации для NodeJS разработчиков, основываясь на OWASP Cheat Sheets, которые помогут вам предусмотреть проблемы с безопасностью при разработке приложений.

Рекомендации к безопасности NodeJS приложений можно разделить на следующие категории:

  • Безопасность при разработке приложения;
  • Безопасность сервера;
  • Безопасность платформы;

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments2

Докеризация приложения, построенного на базе React, Express и MongoDB

Reading time6 min
Views54K
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о том, как упаковывать в контейнеры Docker веб-приложения, основанные на React, Express и MongoDB. Здесь будут рассмотрены особенности формирования структуры файлов и папок таких проектов, создание файлов Dockerfile и использование технологии Docker Compose.


Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments17
1
23 ...

Information

Rating
Does not participate
Location
Адыгея, Россия
Registered
Activity