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

Компания Delivery Club Tech временно не ведёт блог на Хабре

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

Как можно хранить стабы для MockWebServer в Android-тестах

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

Привет, меня зовут Николай. Моя должность в Delivery Club — QA Automation Engineer в мобильной платформенной команде. Эта статья будет о том, как мы подменяем и храним ответы бэкенда при UI-автоматизации тестирования курьерского Android-приложения.

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

Allure TestOps: «Нестандартный» сценарий использования

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

Привет. Меня зовут Николай, я QA Automation Engineer в мобильной платформенной команде Delivery Club. Эта статья будет о том, как мы интегрировали Allure TestOps (далее Allure TO) в регрессионное тестирование нескольких мобильных приложений и ушли от TestRail. Альтернативу TestRail выбирали мои коллеги, и эту часть мы упомянем вскользь.

Этот материал будет интересен тем, кому предстоит интегрировать мобильные автотесты в Allure TO и хочется узнать про потенциальные проблемы. А также, возможно, тем, кому не полностью подходят стандартные сценарии использования этой TMS. Цель статьи — не дать конкретное решение, а продемонстрировать наш сценарий использования нетипичных возможностей TMS с небольшими вставками кода.

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

Не работай «в стол»: руководство для эффективного аналитика

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

Привет, Хабр! Меня зовут Денис, я работаю продуктовым аналитиком в Delivery Club. Наша команда за последние полгода провела около сотни продуктовых исследований данных, которые способствовали появлению нескольких десятков продуктовых гипотез по улучшению нашего продукта. За это время мы структурировали процесс и минимизировали работу «в стол». Я расскажу об основных этапах исследования, применив которые вы можете значительно улучшить качество своей работы.

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

My way or the burn way, или Мой десятилетний путь эмоционального выгорания

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

Всë надоело, я устал. Мне бы сейчас полежать, а не вот это вот всë… 

Не хочу больше ничего. Все козлы. Что за непонятная постановка задачи, кто еë написал? Зачем это нужно?

Если я не сделаю, всë равно ведь ничего не изменится, зачем это всë?

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

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

Как мы научились А/B-тестировать алгоритмы с помощью switchback-тестов

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

Привет! На связи Евгений Бокарев и Надежда Грачёва, в этой статье мы расскажем про внедрение switchback A/B-тестов в логистике Delivery Club. Обсудим, как оценивать результат эксперимента, если эффективность доставки одного заказа влияет на другие. И на примере покажем, как мы снизили долю невыполненных заказов, с какими сложностями столкнулись и как их решали.

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

Как обеспечить безопасность сборки ПО: управляем внешними зависимостями

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

Привет! Проблема управления безопасностью зависимостей — supply chain security — в настоящее время как никогда актуальна. В качестве примера можно привести историю компании SolarWinds: исходный код разрабатываемой ею утилиты был скомпрометирован и среди клиентов компании распространилось вредоносное ПО. Также возникла тенденция по внедрению деструктивного кода разработчиками open-source проектов, широко используемых коммерческими компаниями.

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

Функция Reactive во Vue: как это работает

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

После jQuery я попробовал AngularJS и был очарован его возможностями. Несколько строк в AngularJS заменяли кучу спегетти-кода в jQuery. Это было похоже на магию. Сейчас все современные Frontend-фреймворки так или иначе обеспечивают реактивность, и это уже никого не удивляет. Тем не менее далеко не все разработчики понимают, как это работает.

Сейчас я работаю с Vue, поэтому и разбираться с тем, как устроены реактивные функции, будем на его примере. Я расскажу, как сделать из простого объекта реактивный, а также немного о том, какие современные возможности JS для этого используются.

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

Отменяем операции правильно на примере корутин

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

Всем привет! Меня зовут Павел, я Android-разработчик в Delivery Club. Моя команда разрабатывает функциональность доставки продуктов из магазинов. Я расскажу о подходе к написанию кода, подразумевающем, что любые долгие операции могут быть отменены. На примере корутин рассмотрим сферы применения такого подхода.

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 7

Эволюция рекомендаций ресторанов в Delivery Club. Часть 2

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

Всем привет! Это вторая часть статьи об изменении подхода к рекомендациям в Delivery Club. В первой части я подробно описал текущие проблемы нашей рекомендательной системы: локально оптимальный баланс exploitation и cold start, а также недостаточно развитый механизм exploration. А также рассказал, как мы решали проблему exploitation через карусель «Вы заказывали», а проблему cold start — через карусель популярных фастфуд-ресторанов. 

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

Анализ синтаксиса, который всегда с тобой

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

Всем привет, меня зовут Денис Лимарев, я разработчик платежной системы Delivery Club. И сегодня я расскажу, как мне надоели однообразные ошибки и собственная невнимательность, и как я с этим борюсь. Недавно я написал статью о нашем линтере, где вскользь затрагивал возможность написания локальных проверок под конкретный проект. Сегодня раскрою эту тему подробнее и опишу приемы, упрощающие проверку кода мне и коллегам. А в конце статьи расскажу, как можно автоматизировать некоторые проверки ИБ из нашей недавней статьи, поделюсь дальнейшими планами по развитию по развитию и оставлю ссылку на доклад автора go-ruleguard (далее ruleguard).

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

Проверяем защищённость приложения на Go: с чего начать

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

Привет! Меня зовут Александра, я инженер по информационной безопасности в Delivery Club. Мы используем Go в качестве основного языка для разработки Web-API и представляем вашему вниманию краткое руководство по быстрой проверке сервиса на соответствие базовым требованиям безопасности. Представленную ниже информацию можно адаптировать под проекты, написанные и на других языках.

Читать далее
Всего голосов 26: ↑20 и ↓6 +14
Комментарии 7

Module Federation: простая загрузка динамических модулей

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

Всем привет! Меня зовут Евгений, я работаю frontend-разработчиком в платформенной команде. Моя задача — помогать другим frontend-разработчикам выполнять их задачи эффективнее. Мы в Delivery Club больше года назад внедрили подход с микрофронтендами, о чём писали здесь. Вы можете найти и много других статей с описанием этого подхода.

После выхода стабильной версии Webpack 5 мы решили использовать плагин Module Federation в качестве основного способа загрузки микрофронтендов. В этой статье расскажу, с какой проблемой столкнулся при загрузке динамических модулей и как её решил. Описывать будут на примере плагина Module Federation во всех деталях. Если вы слышите про этот инструмент впервые, то советую предварительно ознакомиться.

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

Эволюция рекомендаций ресторанов в Delivery Club. Часть 1

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

Всем привет! Меня зовут Иван Максимов, я работаю Lead Data Scientist’ом в команде рекомендаций и A/B-тестирования Delivery Club. Это первая из серии статей про нашу рекомендательную систему. Я расскажу о том, как мы определили проблемы предыдущего подхода к рекомендациям, и как начали строить новый: с оптимизацией рекомендаций сразу под несколько бизнес-метрик. 

Статья будет интересна data scientist’ам и менеджерам продуктов, которые хотят с нуля построить систему рекомендации контента.

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

Автоматизация оптимизаций в Go

Время на прочтение 4 мин
Количество просмотров 7.9K
image

Привет, Хабр! Меня зовут Денис Лимарев, я разработчик платежной системы в Delivery Club.
Недавно мы провели два митапа: по оптимизациям и по нашему новому линтеру. На первом митапе разобрали оптимизации кода на Go, а в рамках второго поговорили про создание и возможности нашего нового линтера, который может искать и самостоятельно применять эти оптимизации, и не только. Как делался линтер и поиск каких оптимизаций смогли автоматизировать — читайте под катом.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 1

Код ревью с учётом человеческих слабостей

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

Проверка кода (code review) — отличный инструмент для повышения качества кода, но он не учитывает один факт: отправляют и просматривают код люди, а они устают, теряют сосредоточенность, ленятся, да и просто испытывают эмоции в самые неожиданные моменты.

Поэтому хочу представить свое видение хороших и плохих практик код ревью с учётом человеческих особенностей.

Читать далее
Всего голосов 27: ↑25 и ↓2 +23
Комментарии 7

Реверс уязвимого приложения от Delivery Club: результаты конкурса

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

Привет! Меня зовут Илья Сафронов, я руковожу направлением информационной безопасности Delivery Club. Третьего дня мы запустили конкурс по реверсу и поиску уязвимости в тестовом Android-приложении. Целью было выполнение кода на бэкенде (RCE). За время конкурса APK скачали более 400 раз, а сломали всего два раза, Hall of Fame можно посмотреть на странице скачивания.

Теперь настало время рассказать, в чём заключалась задача и как её решать. Один из победителей — @D3fl4t3 — прислал нам отличный отчёт, его мы и представляем вашему вниманию.

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

Как назначить самого подходящего курьера: наша скоринговая модель

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


Всем привет! Меня зовут Михаил Моловцев, и я алкоголик операционный аналитик в Delivery Club. Наша команда помогает бизнесу и разработке в процессах и исследованиях, связанных с курьерами и доставкой заказов. Я занимаюсь исследованиями систем назначений заказов, прогнозированием времени доставки и курьерскими скорингами. Расскажу о том, как мы обновили подход к скорингу курьеров для системы назначения заказов.

Немного о скоринге


Представим, что у вас есть некий сервис и клиентская аудитория. У клиентов много различных характеристик, которые важны для сервиса: возраст, длительность пользования сервисом, поведенческие особенности при пользовании и т.д. Характеристик может быть сколь угодно много, и их набор зависит от предметной области.

У вас могут возникать разные задачи по категоризации пользователей. Например, определять клиентов с высокой лояльностью к сервису, или клиентов, которые точно смогут вернуть кредит, и т.д. То есть нужно будет вычислять степень соответствия каждого клиента той или иной категории.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 5

Единая система мониторинга и оповещений BI: правда или вымысел?

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


Привет, Хабр! Мы, Юлия Лузганова HiJulia и Наталия Прудникова balzaant, аналитики в команде Business Intelligence Delivery Club. Наш департамент аналитики стремительно вырос за последние полтора года, сейчас в нем 50 человек и десятки различных проектов. Мы в группе BI-аналитики помогаем пользователям получать чистые и актуальные данные. Например, количество заказов, работающие рестораны и время доставки заказов — одни из главных сущностей. Наша основная задача — своевременная и бесперебойная поставка данных в аналитическое хранилище и их подготовка к дальнейшему использованию. Для этого нам необходимо оперативно выявлять проблемы с загрузкой и обработкой информации.

В этой статье мы хотели бы рассказать о создании мониторинга и системы “near real-time” оповещений. С технической точки зрения реализация простая, а вот нервных клеток разработчиков DWH, BI и пользователей после внедрения сохранено бесконечно много.

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

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

Геопространственное моделирование с применением методов машинного обучения

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


Всем привет! Меня зовут Константин Измайлов, я руководитель направления Data Science в Delivery Club. Мы работаем над многочисленными интересными и сложными задачами: от формирования классических аналитических отчетов до построения рекомендательных моделей в ленте приложения.

Сегодня я расскажу про одну из задач, которую мы решали: про автоматизацию построения зон доставки ресторанов. Зона доставки — это область вокруг заведения, и когда вы в ней находитесь, этот ресторан отображается в списке доступных для заказа. Несмотря на всю простоту формулировки, построение зон доставки ресторанов достаточно непростая задача, в которой встречается много подводных камней не только со стороны технической реализации, но и на этапе внедрения. Я расскажу про предпосылки появления этой задачи, подходы (от более простого к сложному) и подробно рассмотрю алгоритм построения зоны доставки.

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

Статья написана по мотивам выступления с Евгением Макиным на конференции Highload++ Весна 2021. Для тех, кто любит видео, — ищите его в конце статьи.
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 10

We need to go deeper: как пасхалка в приложении Delivery Club сократила субъективное время ожидания еды

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


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

В декабре у нашего разработчика Александра Верестникова возникла идея интегрировать в приложение тайм-киллер — игру-пасхалку, в которую пользователь мог бы поиграть, пока ждёт заказ. Игрушка позволила бы сократить субъективное время ожидания заказа, а тот факт, что её как будто сложно найти, добавил бы происходящему таинственности. Саша зацепил этой идеей другого разработчика, Сахея Игнатьева. И они принялись за работу. После недолгих обсуждений выбор пал на змейку.
Читать дальше →
Всего голосов 38: ↑30 и ↓8 +22
Комментарии 7
1