Немного воскресного чтения для тех, кому интересны не только фичи, но и как может быть устроена продуктовая разработка👀
В статье разбирают доменную структуру, зоны ответственности команд и то, как бизнес и IT взаимодействуют на масштабе большой компании.
Читать 📚
IT АНАЛитика | Подписаться
В статье разбирают доменную структуру, зоны ответственности команд и то, как бизнес и IT взаимодействуют на масштабе большой компании.
Читать 📚
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Доменная структура. Как организована продуктовая разработка в Ozon
Думаю, кому-то из вас будет интересно, как организованы процессы развития IT-продуктов в Ozon. Продукты создаются командами. Деление на команды, а также их интеграция – важная и сложная задача. Каждая...
👍3❤2🔥1
Сейчас в голосовой расскажу про одну ошибку в резюме, от которой у меня каждый раз конкретно пригорает, когда я её вижу:
За деньги ДА!
В прошлом году и немного в этом я проводил консультации.
Я специально это не пушу.
Свободного времени немного, и после работы хочется либо заняться своими делами, либо просто почилить.
Да и консультировать «всех подряд» не самая интересная для меня история.
В канале до сих пор не было отдельного поста на эту тему, и за это время просто накопились отзывы, которые хочется куда-то нормально заземлить.
Поэтому, если вам нужна консультация или помощь, можете посмотреть по ссылке,
с какими запросами ко мне обычно приходят и чего ожидать:
👉Ссылка
IT АНАЛитика | Подписаться
В прошлом году и немного в этом я проводил консультации.
Я специально это не пушу.
Свободного времени немного, и после работы хочется либо заняться своими делами, либо просто почилить.
Да и консультировать «всех подряд» не самая интересная для меня история.
В канале до сих пор не было отдельного поста на эту тему, и за это время просто накопились отзывы, которые хочется куда-то нормально заземлить.
Поэтому, если вам нужна консультация или помощь, можете посмотреть по ссылке,
с какими запросами ко мне обычно приходят и чего ожидать:
👉Ссылка
IT АНАЛитика | Подписаться
❤6
IT АНАЛитика | Вильд Виктор
Аналитик в банке — это так, для души. На самом деле, я админ Telegram-канала. 😎 Но если серьёзно, это уже 100-й пост! Спасибо, что читали, репостили, комментировали и ставили реакции. 1000 подписчиков — это пока так, разогрев. Обнимаю каждого! ❤️ В следующем…
Айтишники, аналитики - газ отмечать Новый год⛄️
Спасибо всем, кто в этом году читал канал, писал в личку, спорил в комментариях и делился постами.
Канал вырос почти в два раза, и вы, дорогие подписчики, мотивируете меня продолжать писать и делать контент дальше.
Год для IT был неспокойный. Много неопределённости, тревоги и вопросов. Но мы как-то справились и продолжаем двигаться дальше.
От себя хочу пожелать:
🌟 работы, которая приносит кайф, а не только деньги
💫 интересных задач и новых офферов
🌟 почаще отдыхать и ходить в отпуск (я проверял, это реально работает).
Спасибо, что вы здесь и остаетесь на канале.
С наступающим🎄
IT АНАЛитика | Подписаться
Спасибо всем, кто в этом году читал канал, писал в личку, спорил в комментариях и делился постами.
Канал вырос почти в два раза, и вы, дорогие подписчики, мотивируете меня продолжать писать и делать контент дальше.
Год для IT был неспокойный. Много неопределённости, тревоги и вопросов. Но мы как-то справились и продолжаем двигаться дальше.
От себя хочу пожелать:
Спасибо, что вы здесь и остаетесь на канале.
С наступающим
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄17❤3💯1
Идемпотентность - это та самая штука, про которую все вроде слышали, про которую любят спрашивать на собесах, но в реальных проектах о ней чаще вспоминают уже после первого инцидента 😐
Годная статья от Яндекса, где на живых примерах разбирают, как повторные запросы могут ломать бизнес-логику, приводить к дублям и странным багам и что с этим делать на уровне API и архитектуры.
Читать📚
IT АНАЛитика | Подписаться
Годная статья от Яндекса, где на живых примерах разбирают, как повторные запросы могут ломать бизнес-логику, приводить к дублям и странным багам и что с этим делать на уровне API и архитектуры.
Читать📚
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Стажёр Вася и его истории об идемпотентности API
Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе. Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси....
🔥6👍4
Прибейте меня, я делаю интеграцию. Часть 1 🍑
Вы - аналитик.
И вам говорят:
«Нужно интегрироваться с другой системой».
Я уже писал про то, почему не люблю интеграции. Чаще всего это душная однотипная х*йня, в которой особо негде проявить фантазию.
Или большая сложная задача, где много документации и данных, которые желательно не упустить, чтобы потом не разгребать серьёзные ошибки.
Но одними фичами сыт не будешь, и работа с интеграциями - неотъемлемая часть жизни аналитика.
В прошлом году я уже делал серию постов про ведение проектов с нуля:
Как вести проекты с нуля?
Как вести проекты с нуля? 2
Как вести проекты с нуля? 3
Как вести проекты с нуля? 4
Как вести проект с нуля? 5
Как вести проект с нуля? 6
Как вести проект с нуля? 7
В этом году хочется повторить такой же формат, но уже про интеграции.
Чтобы если интеграции вас душат, то теперь вы могли сказать:
Что вообще такое интеграция?
Интеграция - это когда две или больше системы обмениваются данными или событиями, чтобы бизнес-процесс работал целиком.
По-простому:
✅ одна система что-то создает;
✅ другая это принимает;
✅ и между ними есть договорённости, формат, правила и ответственность.
Пример
Поставщик и потребитель
В любой интеграции всегда есть минимум две роли.
Поставщик (provider) - это система, которая:
➡️ владеет данными;
➡️ их создаёт или обновляет;
➡️ отвечает за их корректность.
Потребитель (consumer) - это система, которая:
➡️ получает эти данные;
➡️ использует их в своих процессах;
➡️ живёт с последствиями, если данные приехали криво.
Очень частая ошибка не договориться на старте:
🧐 кто владелец данных;
🧐 кто имеет право их менять;
🧐 кто вообще отвечает, если всё сломалось.
Если этого не зафиксировать, интеграция потом начинает жить своей собственной жизнью, а любой разбор проблемы превращается в вереницу писем и поиск «кто виноват».
Зачем тут вообще аналитик?
Потому что именно он:
👍 видит бизнес-процесс целиком;
👍 понимает, зачем вообще нужна эта интеграция;
👍 переводит хотелки бизнеса на человеческий язык для команды;
👍 фиксирует договорённости между системами.
В следующей части поговорим про виды интеграций.
А пока расскажите в комментариях:
с какой самой странной или болезненной интеграцией вам приходилось сталкиваться?👇
Вторая часть
IT АНАЛитика | Подписаться
И вам говорят:
«Нужно интегрироваться с другой системой».
А можно я в очередной раз опишу задачу на покраску кнопочки?🥺
Я уже писал про то, почему не люблю интеграции. Чаще всего это душная однотипная х*йня, в которой особо негде проявить фантазию.
Или большая сложная задача, где много документации и данных, которые желательно не упустить, чтобы потом не разгребать серьёзные ошибки.
Но одними фичами сыт не будешь, и работа с интеграциями - неотъемлемая часть жизни аналитика.
В прошлом году я уже делал серию постов про ведение проектов с нуля:
Как вести проекты с нуля?
Как вести проекты с нуля? 2
Как вести проекты с нуля? 3
Как вести проекты с нуля? 4
Как вести проект с нуля? 5
Как вести проект с нуля? 6
Как вести проект с нуля? 7
В этом году хочется повторить такой же формат, но уже про интеграции.
Чтобы если интеграции вас душат, то теперь вы могли сказать:
Ща всё будет «hold my beer», или чай, если вы не пьёте, как я☕️
Что вообще такое интеграция?
Интеграция - это когда две или больше системы обмениваются данными или событиями, чтобы бизнес-процесс работал целиком.
По-простому:
Пример
Допустим, у нас есть новая система, которая отвечает за работу с клиентами.
Пока что она умеет только одно - создавать клиента.
Клиент пришёл → мы приняли данные → сохранили → создали личный кабинет.
Никаких интеграций пока нет, всё живёт внутри одной системы.
А потом приходит бизнес и говорит:
— клиенту нужно создать счет (это делает другая система);
— клиента нужно проверять в системе проверок;
— часть данных нужно отправлять в систему отчётности.
И вот тут внезапно появляется сразу несколько интеграций.
Если хоть одно звено отвалиться, то бизнес-процесс ломается.
Вот это и есть интеграция.
Поставщик и потребитель
В любой интеграции всегда есть минимум две роли.
Поставщик (provider) - это система, которая:
Потребитель (consumer) - это система, которая:
Очень частая ошибка не договориться на старте:
Если этого не зафиксировать, интеграция потом начинает жить своей собственной жизнью, а любой разбор проблемы превращается в вереницу писем и поиск «кто виноват».
Зачем тут вообще аналитик?
Потому что именно он:
В следующей части поговорим про виды интеграций.
А пока расскажите в комментариях:
с какой самой странной или болезненной интеграцией вам приходилось сталкиваться?
Вторая часть
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13😍3⚡1👍1
Прибейте меня, я делаю интеграцию. Часть 2 🍑
В прошлой части мы разобрались, что такое интеграция и с чем её едят.
И казалось бы всё, тимлид, давай задачку, ща спроектируем-нах*евертим 💃
Но тут важно понимать одну вещь:
Интеграции бывают разные.
И если выбрать не ту модель, могут быть проблемы.
Начнем с того, что мы их можем разделить по двум направлениям:
1. С кем мы интегрируемся.
2. Как мы это делаем.
1. С кем: внутренние и внешние
2. Как: синхрон или асинхрон
Самое простое объяснение:
Синхрон - вы звоните в ресторан.
Пока вам не подтвердят бронь, вы держите трубку.
Асинхрон - вы оставили заявку.
Администратор подтвердил её через 2 часа.
Вы не ждали у телефона.
Какой тип интеграций в ваших задачах встречается чаще всего? И что из этого больше всего бесит?👇
IT АНАЛитика | Подписаться
И казалось бы всё, тимлид, давай задачку, ща спроектируем
Но тут важно понимать одну вещь:
Интеграции бывают разные.
И если выбрать не ту модель, могут быть проблемы.
Начнем с того, что мы их можем разделить по двум направлениям:
1. С кем мы интегрируемся.
2. Как мы это делаем.
1. С кем: внутренние и внешние
🏠Внутренняя интеграция (Internal)
Когда мы связываем наш сервис с другим сервисом внутри компании.
Пример:
Сервис «Оформление заказа» стучится в сервис «Склад», чтобы проверить, есть ли нужная модель телефона в наличии.
Зачастую это более простой вариант:🤗 Все свои. Можно дойти до соседней команды или написать в личку;🤗 Быстрее договориться о доработках;😳 Более быстрый разбор ошибок.
Из минусов:😒 Знания часто живут в головах и может быть плохо описанная документация;💬 У другой команды свой бэклог и задачу могут взять в работу не так быстро, как хотелось бы;🤓 Могут выкатить правки без предупреждения и молча сломать вам прод.
🌐 Внешняя (External)
Когда мы интегрируемся с системой вне нашей компании.
Пример:
У нас есть сервис авторизации и мы хотим, чтобы пользователь мог войти через Госуслуги или Google (внешние сервисы).
Из плюсов:😋 Обычно есть подробная документация, которую можно изучить самому;🔺 Есть чёткие правила и форматы данных, которые меняются не так часто.
Из минусов:💀 Вы не влияете на процесс. Если они решили что-то поменять, вы просто подстраиваетесь, иначе всё сломается;💀 Если внешний сервис упал, то разрабу в личку уже не напишите, придется писать в саппорт и ждать ответа.
2. Как: синхрон или асинхрон
📞 Синхронная интеграция (Request–Response)
Самый популярный вариант - REST, gRPC, SOAP.
Логика простая:
Запрос → Ожидание → Ответ. Пока мы не получим результат от другой системы, дальше не идем.
Пример:
Создали клиента → отправили запрос в систему проверок → ждем 5 секунд → получили статус «Одобрено» → создали личный кабинет.
Плюсы:🎉 Всё просто: отправил - получил. Легко проектировать.😊 Сразу понятно, на каком этапе возникла ошибка.😌 Дернул метод через Postman и сразу увидел результат.
Минусы:😅 Если вторая система упала, то процесс встал;🤨 Любая задержка бьёт по пользователю.
Когда использовать:👉 Ответ нужен здесь и сейчас (например, проверка баланса или авторизация);👉 Пользователь смотрит в экран и не может продолжать работу без этих данных.
📨 Асинхронная интеграция (Event-Driven / MQ)
Kafka, RabbitMQ и другие брокеры сообщений.
Логика простая:
Отправили → Забыли. Нам не важно, когда именно другая система обработает данные. Главное, что мы зафиксировали событие и пошли дальше.
Пример:
Клиент нажал «Оформить заказ» → мы кинули событие в очередь → Склад начал сборку, а программа лояльности начислила баллы. Клиент сразу видит экран «Заказ принят», а не ждёт, пока отработают все внутренние сервисы.
Плюсы:😏 Система не «тупит» в ожидании ответа, пользователь доволен скоростью.😋 Если сервис почты упал, заказ всё равно оформится. Сообщение полежит в очереди и долетит позже, когда сервис поднимется.👍 Можно легко добавить ещё пять систем-потребителей, и основной процесс от этого не замедлится.
Минусы:🥲 Сложнее тестировать: приходится прыгать по логам разных систем, чтобы понять, где и почему застряло сообщение.😉 Аналитику нужно продумать кучу нюансов: что делать с дублями сообщений (идемпотентность) и как не перепутать их порядок.
Самое простое объяснение:
Синхрон - вы звоните в ресторан.
Пока вам не подтвердят бронь, вы держите трубку.
Асинхрон - вы оставили заявку.
Администратор подтвердил её через 2 часа.
Вы не ждали у телефона.
Какой тип интеграций в ваших задачах встречается чаще всего? И что из этого больше всего бесит?
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
Прибейте меня, я делаю интеграцию. Часть 3 🍑
Во второй части разобрались с видами интеграций и как выбрать нужную.
Теперь главное не угробить её и довести до прода живой.
Как аналитик проектирует интеграцию: 5 шагов🧠
Типичные ошибки, через которые думаю многие проходили 🤦
❌ «Договорились устно»
Вы попросили команду соседнего сервиса сделать доработку, получили ответ «да, без проблем». Никто это не зафиксировал. Через месяц они выкатили релиз без вашей правки и сломали вам прод. Классика.
❌ Не проработали обработку ошибок
Happy path описан на 5 страниц, ручки готовы, диаграммки построены.
А что делать, если внешний сервис вернул 500? Все забили и потом «ой, какая-то ошибка на проде»
❌ Забыли про нефункциональные требования
Сколько запросов в секунду? Какой допустимый таймаут? Без этого интеграция может работать на стенде и падать на проде под высокой нагрузкой.
❌ Не согласовали интеграцию с обеими сторонами
Одну сторону спросили, вторую нет. В итоге маппинг написан под старую версию API.
Что зафиксировать в документации📄
Базовый минимум любой интеграционной доки:
➡️ Цель интеграции и бизнес-контекст
➡️ Участники: кто поставщик, кто потребитель
➡️ Тип интеграции: синхрон/асинхрон, REST/Kafka и.т.д
➡️ Описание запроса и ответа (маппинг полей)
➡️ Обработка ошибок
➡️ Нефункциональные требования: таймауты, нагрузка, доступность
➡️ Ссылки на API-документацию внешней системы
Ну и чеклист готовности интеграции к проду
Сохраняй, пригодится:
✅ Бизнес-цель понята и зафиксирована
✅ Стороны определены, владелец данных назначен
✅ Тип интеграции выбран и обоснован
✅ Маппинг полей согласован с обеими командами
✅ Обработка ошибок описана
✅ НФТ прописаны
✅ Документация актуальна и доступна команде
✅ Тестовый стенд проверен
Раньше интеграции казались мне душной однотипной х*йней, с которой лень разбираться.
Но приняв их, вдумчиво разобравшись и проработав огромное количество становиться проще.
Надеюсь, если вы их и не полюбите, то хотя бы начнёте щёлкать как орешки.
Когда разбираешь интеграцию по частям она перестаёт пугать. Потому что за техническими терминами всегда одно и то же: две системы, которым нужно договориться. А помочь им в этом твоя работа😉
А какой пункт из чеклиста вы чаще всего пропускаете? Признавайтесь в комментариях👇
IT АНАЛитика | Подписаться
Теперь главное не угробить её и довести до прода живой.
Как аналитик проектирует интеграцию: 5 шагов
Шаг 1. Понять зачем
Как и в любой другой задаче — сначала выясни, какую проблему решает интеграция.
Звучит очевидно, но порой от неё можно вовсе отказаться в пользу уже существующего решения. Или окажется, что интеграция уже была и просто никто её не описал🙂
Шаг 2. Определить стороны
Кто поставщик, кто потребитель, кто владелец данных.
Договорились — зафиксировали письменно. В идеале прикладываем куда-то себе в аналитику, чтобы не потерять.
Шаг 3. Выбрать модель
Один из самых важных шагов.
Если есть архитектор — выбор модели можно дополнительно согласовать с ним.
Нет архитектора? Соберитесь с командой и обсудите варианты вместе.
Или в системе, с которой будете интегрироваться есть только Kafka, то и выбирать не придется.
Если у внешней системы есть только Kafka, то выбирать способ и вовсе не придется
Шаг 4. Описать данные
Какие поля едут, в каком формате, что обязательно, что делать если поле пустое.
Это и есть маппинг — про него у меня есть отдельный пост.
Шаг 5. Договориться об ошибках
Что делает система, если запрос упал? Таймаут? Ретрай? Алерт?
Этот вопрос часто забывают и потом на разборе инцидента кому-то приходится краснеть.
Типичные ошибки, через которые думаю многие проходили 🤦
Вы попросили команду соседнего сервиса сделать доработку, получили ответ «да, без проблем». Никто это не зафиксировал. Через месяц они выкатили релиз без вашей правки и сломали вам прод. Классика.
Happy path описан на 5 страниц, ручки готовы, диаграммки построены.
А что делать, если внешний сервис вернул 500? Все забили и потом «ой, какая-то ошибка на проде»
Сколько запросов в секунду? Какой допустимый таймаут? Без этого интеграция может работать на стенде и падать на проде под высокой нагрузкой.
Одну сторону спросили, вторую нет. В итоге маппинг написан под старую версию API.
У меня такое довольно часто бывало и теперь всегда спрашиваю ссылку на свежую доку.
Что зафиксировать в документации
Базовый минимум любой интеграционной доки:
Ну и чеклист готовности интеграции к проду
Сохраняй, пригодится:
✅ Бизнес-цель понята и зафиксирована
✅ Стороны определены, владелец данных назначен
✅ Тип интеграции выбран и обоснован
✅ Маппинг полей согласован с обеими командами
✅ Обработка ошибок описана
✅ НФТ прописаны
✅ Документация актуальна и доступна команде
✅ Тестовый стенд проверен
Раньше интеграции казались мне душной однотипной х*йней, с которой лень разбираться.
Но приняв их, вдумчиво разобравшись и проработав огромное количество становиться проще.
Надеюсь, если вы их и не полюбите, то хотя бы начнёте щёлкать как орешки.
Когда разбираешь интеграцию по частям она перестаёт пугать. Потому что за техническими терминами всегда одно и то же: две системы, которым нужно договориться. А помочь им в этом твоя работа
А какой пункт из чеклиста вы чаще всего пропускаете? Признавайтесь в комментариях
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1