Как стать автором
Обновить

Компания Retail Rocket временно не ведёт блог на Хабре

Сначала показывать

Прокси-метрики в E-commerce. Часть 3

Время на прочтение 7 мин
Количество просмотров 1.8K
Блог компании Retail Rocket Машинное обучение *Growth Hacking *Управление e-commerce *

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

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

Читать далее
Рейтинг 0
Комментарии 0

Прокси-метрики в E-commerce. Часть 2

Время на прочтение 7 мин
Количество просмотров 2.9K
Блог компании Retail Rocket Машинное обучение *Growth Hacking *Управление e-commerce *

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

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

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

Прокси-метрики в E-commerce. Часть 1

Время на прочтение 7 мин
Количество просмотров 7.3K
Блог компании Retail Rocket Машинное обучение *Growth Hacking *Управление e-commerce *

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

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

Почему концепция Exception в C# — зло

Время на прочтение 2 мин
Количество просмотров 1.7K
Блог компании Retail Rocket .NET *C# *ООП *

В этой заметке я поделюсь наблюдениями о проблемах концепции exception в языке C#, именно о тех, которые возникают от самого факта наличия такой ее реализации. И оставлю “за скобками" проблемы, которые появляются от ее неправильного использования. Ниже я перечислю и опишу их.

Читать далее
Рейтинг 0
Комментарии 24

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

Время на прочтение 9 мин
Количество просмотров 3.6K
Блог компании Retail Rocket Совершенный код *UML Design *ООП *Параллельное программирование *
Перевод

Пришло время посмотреть на тип модели классов UML, который можно встретить во множестве проектов. А ещё, увы, который часто поощряется в книгах по UML.

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

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

Время на прочтение 5 мин
Количество просмотров 3.5K
Блог компании Retail Rocket Совершенный код *Проектирование и рефакторинг *UML Design *ООП *
Перевод

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

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

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

Время на прочтение 13 мин
Количество просмотров 1.4K
Блог компании Retail Rocket Тестирование IT-систем *Программирование *TDD *

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

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

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

Время на прочтение 8 мин
Количество просмотров 5.6K
Блог компании Retail Rocket Совершенный код *Проектирование и рефакторинг *UML Design *ООП *
Перевод

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

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

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

Время на прочтение 10 мин
Количество просмотров 13K
Блог компании Retail Rocket Совершенный код *Проектирование и рефакторинг *UML Design *ООП *
Перевод

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

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

Почему автоматическая регистрация зависимостей — зло

Время на прочтение 3 мин
Количество просмотров 5.3K
Блог компании Retail Rocket Программирование *Совершенный код *Проектирование и рефакторинг *ООП *
image

Есть много проектов типа Simple Injector для различных языков программирования, позволяющих по имени класса, интерфейса или неймспейса, а иногда и папки зарегистрировать класс или всю группу классов, объединенных этим признаком, в каком-то регистре. Это делается для цели автоматического инстанцирования объекта без явного указания его зависимостей. Такую регистрацию группы объектов по общему признаку в регистре с целью дальнейшего инстанцирования я называю автоматической регистрацией зависимостей.
Читать дальше →
Всего голосов 24: ↑19 и ↓5 +14
Комментарии 91

Аудит и тестирование писем: на что стоит обращать внимание при верстке

Время на прочтение 5 мин
Количество просмотров 3.4K
Блог компании Retail Rocket Верстка писем *
Привет, Хабр!

Код не терпит халатного отношения, будь то сложные алгоритмы обработки данных или верстка email-рассылок.

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


Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Growth Hacking в Retail Rocket: от поиска гипотез до методики тестирования

Время на прочтение 6 мин
Количество просмотров 3.7K
Блог компании Retail Rocket Growth Hacking *
Growth Hacking овеян множеством мифов. Одни считают его панацеей от всех бед, другие — чуть ли не шарлатанством. Недоверие подогревают кейсы с невероятными цифрами роста в десятки и сотни раз, которые пытаются бездумно копировать и не получая такого же роста объявляют подход неработающим.

Но для того, чтобы «взломать рост» компании недостаточно просто выделить команду и поставить им задачу искать точки роста. Growth Hacking — очень сложный процесс, который требует высокой экспертизы и четкой методологии.

С момента основания Retail Rocket взлом роста стал неотъемлемой частью работы компании. Более шести лет мы вырабатывали уникальную систему проведения тестирований и подборов алгоритмов. В том числе благодаря этой методологии, мы можем обеспечивать самый высокий показатель ROI на рынке. И сегодня мы хотим поделиться опытом использования Growth Hacking'а в ecommerce.


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

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

Время на прочтение 5 мин
Количество просмотров 2.8K
Блог компании Retail Rocket Высокая производительность *Серверная оптимизация *Управление продуктом *
Привет, Хабр!

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

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

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


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

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

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



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

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

Время на прочтение 5 мин
Количество просмотров 5.8K
Блог компании Retail Rocket Программирование *
Привет, Хабр!

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



Предыстория


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

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

Как писать функциональные требования

Время на прочтение 5 мин
Количество просмотров 115K
Блог компании Retail Rocket Управление разработкой *Управление проектами *Управление продуктом *
Привет, Хабр!

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

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


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

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

Время на прочтение 5 мин
Количество просмотров 15K
Блог компании Retail Rocket Программирование *
Привет, Хабр!

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

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


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

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

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

Как обмен данными влияет на качество рекомендаций

Время на прочтение 7 мин
Количество просмотров 2.8K
Блог компании Retail Rocket Big Data *Хранение данных *
Привет, Хабр!

Мы уделяем особенное внимание проверке интеграции при подключении нового клиента к платформе и постоянно отслеживаем статус интеграции в процессе работы. Почему это критически важно? Потому что сбор данных — основа формирования качественных рекомендаций.



Работа рекомендательной системы строится на нескольких важных составляющих: сбор данных, их хранение, обработка, выдача рекомендаций и growth hacking. Плюс «железо» для обеспечения вычислительных мощностей алгоритмов и процесс верстки. Таким образом мы получаем как минимум 7 пунктов, от которых зависит качество рекомендаций, не говоря уже о дорогой команде аналитиков. Как внешний сервис, так и внутренняя система рекомендаций интернет-магазина, должны охватывать все эти пункты и качественно обеспечивать работу на всех этапах.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 0

Как принципы игры «Playing Lean» помогают в создании продуктов

Время на прочтение 6 мин
Количество просмотров 5K
Блог компании Retail Rocket Управление разработкой *Управление продуктом *
Привет, Хабр!

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

Сегодня мы хотим рассказать, как игра «Playing Lean» помогает не только погрузиться в методологию бережливого производства, но и применить этот опыт на практике — в разработке продуктов и новых фич.


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

10 материалов RecSys о рекомендательных системах, которые должен прочитать каждый

Время на прочтение 2 мин
Количество просмотров 5.6K
Блог компании Retail Rocket Профессиональная литература *
Привет, Хабр! Сегодня мы хотим поделиться с сообществом подборкой лучших материалов конференции ACM Recommender Systems (RecSys), которые обязательно нужно прочитать каждому специалисту, который занимается рекомендательными системами.


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