Как стать автором
Поиск
Написать публикацию
Обновить

Собираем данные из сотни микросервисов, или Как мы разобрали Ozon на кубики, а потом собрали заново

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров22K
Всего голосов 39: ↑38 и ↓1+41
Комментарии12

Комментарии 12

Сколько времени занял весь этот путь от "Итак, вот какие основные требования к системе накопились у нас к этому моменту"?

Сейчас проекту уже около 5-6 лет

Придётся однажды прочитать внимательно и подробно. А пока только два чисто технических вопроса:

  1. Где искать кнопочку "Выход из системы"? Раньше она была в верхней части страницы в выпадающем прямо под рожицей меню. Теперь аналогичная кнопка запрятана где-то в глубине интерфейса (раздел "Управление аккаунтом").

  2. Почему исчезает карточка товара, если его перестали продавать? В этом случае должна исчезать только кнопка "Положить в корзину".

С Android приложения можно посмотреть карточку товара, "Положить в корзину" нету, зато есть "Узнать о поступлении"

Привет! Оба вопроса как будто больше по продуктовой части озона, но попробую ответить как не погруженный разработчик)

  1. Насколько мне известно, все верно, выход из системы переехал в раздел "Управление аккаунтом" https://www.ozon.ru/ozonid

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

Добавлю важное уточнение, что практически весь дизайн Ozon выкатывается через A/B. Поэтому если было принято решение сделать так, а не иначе, то, скорее всего, за это неявно проголосовали сами пользователи.

Фантастическая работа!

А возможны ли цепочки действий в виджетах - например, нажали кнопку, потом вернули управление пользователю для подтверждения или выбора, в конце завершили действие. То есть есть ли шаблоны команд у виджетов ?

У нас такого функционала пока нет, но идея звучит интересно) Как будто длинные формочки с множественным выбором - это одно из слабых мест BD-UI систем. Возможно, такое получилось бы сделать, если перенести больше логики на фронтенд, хотя мы стараемся этого избегать.

Жаль wildberries ничего не публикует, мне больше нравится как у них всё работает.

не волнуйтесь, скоро опубликуем))

Мне кажется что feature дизайн приложения вполне решает все задачи и не создает проблем с microservice hell.

Фичи можно перекомпоновывать на страницах как хочется но при этом не создается куча микросервисов и не возникает проблем на бэкэнде

Мне кажется что у вас проявился синдром человека с молотком - когда ему после того как он берет в руки молоток все вокруг кажется гвоздями!
В вашей ситуации - вы увлеклись микросервисами, создали бОльшую сложность с которой потом героически сражались, но в итоге создали ее новый вид

Увлечение BDUI возвращает на во времена когда часть страницы рендерилась на php на сервере а часть логики нужно было обрабатывать на клиенте - это усложняет процесс разработки привнося гораздо бОльшую сложность - теперь и серверная логика связана с клиентской и это все превращается в клубок зависимостей

Рендеринг происходит как раз на фронтенде, где каждая платформа будь то web, ios или android, знает как отрисовать виджет. С сервера по большому счету приходит лишь DTO. То, что касается микросервисов, в Ozon хорошо развита инфраструктура по работе и поддержке сервисов, о чем выходила ни одна статья.

Спасибо за статью!

Как вы пришли к такому решению?

  • Решали какие-то потребности бизнеса?

  • Или решали проблемы связанные с быстрым ростом?

  • Эволюционно или "революционно"? Было ли какое-то предыдущее решение, которе вас не устраивало?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий