Как стать автором
Обновить
0
0
Artem Astashkin @TEMACTbIU

Пользователь

Отправить сообщение

«Подземные камни» А/Б-тестирования в e-commerce

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров1.9K

Любой полезный бизнесу продукт меняется со временем: появляются новые функции, улучшаются старые. Возникает потребность оценить влияние таких изменений на пользователей продукта. Необходимо проверить, нет ли ошибок в реализации новой функциональности и справляется ли она с поставленными задачами. 

Первое, что хочется сделать — сравнить показатели работы продукта до внесения изменений и после. Но в таком случае нельзя утверждать, что разница в показателях обусловлена только новой функциональностью, так как на состояние продукта в любой момент времени может повлиять любой внешний фактор. Поэтому принято прибегать к контролируемым рандомизированным экспериментам, которые также называют А/Б-тестами. В том числе и для товарных рекомендаций в e-commerce.

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии3

ООП мертв, да здравствует ООП

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров6.1K

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

Читать далее
Всего голосов 6: ↑2 и ↓4-2
Комментарии91

Как построить четкие модели классов и получить реальные преимущества от UML. Часть 3

Время на прочтение5 мин
Количество просмотров3.8K

В первых двух частях (1, 2) мы обсудили общий принципы UML, о семантике и признаках хорошей модели. В этой части добавим ещё кое-что про хорошие модели и перейдём к плохим.

Читать далее
Всего голосов 9: ↑8 и ↓1+12
Комментарии4

Практики автоматического тестирования Retail Rocket

Время на прочтение13 мин
Количество просмотров1.7K

Я часто собеседую кандидатов на позиции .Net разработчиков в Retail Rocket. В прошлом работал в компаниях с различными командами. И далеко не один раз встречал и продолжаю встречать мнение, что “автотесты хорошо, но на них нет времени, писать их дорого, тестировать должны тестировщики”. Такое мнение не у всех, но встречается нередко (не исключаю, что мне так «везет»). В связи с этим хочу поделиться нашим подходом к автоматическому тестированию и обеспечению качества. Расскажу путь, который мы в Retail Rocket прошли за последние 3-4 года, к чему пришли сейчас, и —  главное — что дают нам автотесты и для чего мы их пишем. Надеюсь, статья кого-нибудь сподвигнет писать автотесты, кого-то — писать больше автотестов, а кому-то, возможно, поможет избежать ошибок, с которыми мы сталкивались.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

Как построить четкие модели классов и получить реальные преимущества от UML. Часть 2

Время на прочтение8 мин
Количество просмотров6.1K

Вторая часть перевода статьи Леона Старра, инженера программных моделей. Первая часть вот здесь. В этой части — о семантике и о том, что отличает хорошую модель.

Читать далее
Всего голосов 12: ↑11 и ↓1+16
Комментарии0

Как построить четкие модели классов и получить реальные преимущества от UML

Время на прочтение10 мин
Количество просмотров14K

Мне показался близким подход Леона Старра к объяснению чётких моделей классов и описанию их преимуществ. Настолько, что мы в Retail Rocket решили сделать перевод его большой статьи "How To Build Articulated UML Class Models". Будем выкладывать по частям, под катом — первая из трёх.

Читать далее
Всего голосов 14: ↑10 и ↓4+10
Комментарии2

Как выдержать повышенные нагрузки на систему: рассказываем о масштабной подготовке к Черной Пятнице

Время на прочтение5 мин
Количество просмотров3.1K
Привет, Хабр!

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

Цель поставили самую амбициозную из возможных: мы хотели быть полностью готовыми к любым, даже самым мощным, всплескам активности и начали заранее выводить новые мощности в течение года.

Наш CTO Андрей Чиж (chizh_andrey) рассказывает, как мы готовились к Черной Пятнице 2018, какие меры предприняли, чтобы избежать падений, и, конечно, же о результатах такой тщательной подготовки.


Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии2

Нужен ли магазину «Стильный кросселл»: опыт Retail Rocket в анализе изображений для формирования рекомендаций

Время на прочтение15 мин
Количество просмотров3.2K
Интерес к анализу изображений для формирования рекомендаций растет с каждым днем. Мы решили разобраться, насколько реальные результаты приносит эта трендовая тема. Рассказываем о тестировании использования глубинного обучения (Deep Learning) для улучшения рекомендаций сопутствующих товаров.



В этой статье мы описываем опыт применения технологии анализа изображений для улучшения алгоритма сопутствующих товаров. Читать ее можно двумя способами: те, кто не интересуется техническими деталями использования нейронных сетей, могут пропустить главы про формирование датасета и реализацию решений и перейти сразу к AB-тестам и их результатам. А тем, кто имеет базовое представление о таких понятиях как эмбендинги, слой нейронной сети и т.д., будет интересен весь материал целиком.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии6

Как мы нашли критичную уязвимость AspNetCore.Mvc и перешли на собственную сериализацию

Время на прочтение5 мин
Количество просмотров6K
Привет, Хабр!

В этой статье мы хотим поделиться нашим опытом в оптимизации производительности и исследовании особенностей AspNetCore.Mvc.



Предыстория


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

В результате профилирования мы обнаружили, что большую часть процессорного времени “съедает” десериализация. Мы выкинули стандартный сериализатор и написали свой на Jil, в результате чего потребление ресурсов снизилось в разы. Все работало как нужно и мы успели об этом позабыть.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии4

Рабочее место .NET разработчика или трудности выбора идеальной конфигурации ver.2.0

Время на прочтение5 мин
Количество просмотров17K
Привет, Хабр!

И снова мы приоткрываем дверь «за кулисы» проекта Retail Rocket. Запуская инженерный блог, мы обещали рассказывать о подходах, используемых в области анализа данных, и разработки технологий, которые позволяют создавать самую популярную на рынке ecommerce платформу персонализации.

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


Старое рабочее место .NET разработчика в офисе Retail Rocket

Все также половина нашей команды разрабатывает на .NET, но почти все разработчики сменили Visual Studio и Resharper на Rider 2018. Rider оказался заметно быстрее, чем Visual Studio с решарпером, и мы не устояли. Также из-за все большего количества проектов и файлов, нам пришлось разделить единый solution на несколько. Но нам все еще требуются быстрые машины, чтобы работа оставалась комфортной.

В начале этого года перед нами встала задача оборудовать еще несколько рабочих мест для разработчиков, мы решили поработать над существующей производительностью и подобрали новые комплектующие.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии92

10 уроков рекомендательной системы Quora

Время на прочтение11 мин
Количество просмотров9.7K


Привет, Хабр! Как директор по аналитике Retail Rocket, я периодически посещаю различные профильные мероприятия, и в сентябре 2016 года мне посчастливилось побывать на конференции RecSys, посвященной рекомендательным системам, в Бостоне. Было очень много интересных докладов, но мы решили сделать перевод одного из них Lessons Learned from Building Real­-Life Recommender Systems. Он очень интересен с позиции того, как Machine Learning применять в production системах. Про сам ML написано множество статей: алгоритмы, практика применения, конкурсы Kaggle. Но вывод алгоритмов в production — это отдельная и большая работа. Скажу по секрету, разработка алгоритма занимает всего 10%-20% времени, а вывод его в бой все 80-90%. Здесь появляется множество ограничений: какие данные где обрабатывать (в онлайне или оффлайне), время обучения модели, время применения модели на серверах в онлайне и т.д. Критически важным аспектом также является выбор оффлайн/онлайн метрик и их корреляция. На этой же конференции мы делали похожий доклад Hypothesis Testing: How to Eliminate Ideas as Soon as Possible, но выбрали вышеупомянутый учебный доклад от Quora, т.к. он менее специфичный и его можно применять за пределами рекомендательных систем.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии6

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность