Прибейте меня, я делаю интеграцию. Часть 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
🔥9👍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
❤7👍5🔥2
Дамы, с 8 марта! 🌷
Пусть в вашей жизни будет поменьше багов, дедлайны переносятся сами, а задачи закрываются быстрее, чем вы успеваете сказать «давайте уточним требования».
Пусть рядом будут люди, которые ценят вас не только за ум, работу и профессионализм, но и просто за то, какие вы есть.
А ещё побольше отдыха, цветов и приятных мелочей. Потому что жизнь — это не только спринты и релизы🙂
С праздником!❤️
IT АНАЛитика
Пусть в вашей жизни будет поменьше багов, дедлайны переносятся сами, а задачи закрываются быстрее, чем вы успеваете сказать «давайте уточним требования».
Пусть рядом будут люди, которые ценят вас не только за ум, работу и профессионализм, но и просто за то, какие вы есть.
А ещё побольше отдыха, цветов и приятных мелочей. Потому что жизнь — это не только спринты и релизы
С праздником!
IT АНАЛитика
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰20😍7💘4
IT АНАЛитика | Вильд Виктор pinned «За деньги ДА! В прошлом году и немного в этом я проводил консультации. Я специально это не пушу. Свободного времени немного, и после работы хочется либо заняться своими делами, либо просто почилить. Да и консультировать «всех подряд» не самая интересная…»
7 признаков того, что команде пора брать аналитика.
Я бы добавил ещё один — разработчики занимаются аналитикой вместо разработки.
А у вас такое было?👇
Читать📚
IT АНАЛитика | Подписаться
Я бы добавил ещё один — разработчики занимаются аналитикой вместо разработки.
А у вас такое было?
Читать📚
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как менеджеру понять, что на проекте нужен аналитик
Привет, это Максим Павлов, управляющий партнер KTS . Типовая ситуация — разработка проекта шла хорошо, а потом тебе либо увеличили команду, либо накинули работы, либо дали дополнительный проект,...
🔥2👍1
Как работать со смежной командой?😐
Для каждого, кто работал со смежной командой, скорее всего будет жиза🙂
Пишешь такой письмо коллегам:
Проходит неделя и ТИ ШИ НА.
Чаще всего это не специально (хотя бывает и так). Люди просто не понимают, что вы от них хотите, не знают как помочь или заняты своими задачами. И вот тут твоя задача — сделать так, чтобы им было легче тебе помочь.
Вот как я бы выстроил эту работу:
1. Нормально познакомиться🤝
Не просто «нам нужно от вас вот это». Объясните кто вы, зачем пришли и что от них потребуется на каждом этапе. Люди охотнее помогают тем, кого понимают. В идеале сразу ставьте встречу.
2. Информируйте заранее, а не в последний момент 📢
Если у вас контрольная точка или короткий срок выхода в релиз, то скажите об этом сейчас, а не за день. Сюрпризы никто не любит, особенно когда они ломают чужие планы.
3. Фиксируйте все договорённости письменно📝
Устные «Ало задача? Да, да релиз» — не считаются. После каждой встречи отправляйте короткий итог: кто что делает и в какой срок. Переписка вас спасёт, если кто-то проеб*тся.
4. Помогите им помочь вам💡
Если смежная команда тормозит — не ждите. Спросите, в чём проблема. Дайте шаблон, гайд, контакт нужного человека и всё сразу пойдёт быстрее.
5. Эскалируйте вовремя🚨
Если письма уходят в тишину — не ждите. Подключайте руководителей. Но сначала всегда пробуйте решить мягко.
Нашел статью по теме с разбором кейсов при работе со смежными командами, если захотите углубиться в тему:
Читать 📚
А какой пункт у вас чаще всего проседает?👇
IT АНАЛитика | Подписаться
Для каждого, кто работал со смежной командой, скорее всего будет жиза
Пишешь такой письмо коллегам:
"Привет, хотели бы с вами вот такую задачу сделать. Когда сможете вернуться?"
Проходит неделя и ТИ ШИ НА.
Чаще всего это не специально (хотя бывает и так). Люди просто не понимают, что вы от них хотите, не знают как помочь или заняты своими задачами. И вот тут твоя задача — сделать так, чтобы им было легче тебе помочь.
Вот как я бы выстроил эту работу:
1. Нормально познакомиться
Не просто «нам нужно от вас вот это». Объясните кто вы, зачем пришли и что от них потребуется на каждом этапе. Люди охотнее помогают тем, кого понимают. В идеале сразу ставьте встречу.
2. Информируйте заранее, а не в последний момент 📢
Если у вас контрольная точка или короткий срок выхода в релиз, то скажите об этом сейчас, а не за день. Сюрпризы никто не любит, особенно когда они ломают чужие планы.
3. Фиксируйте все договорённости письменно
Устные «Ало задача? Да, да релиз» — не считаются. После каждой встречи отправляйте короткий итог: кто что делает и в какой срок. Переписка вас спасёт, если кто-то проеб*тся.
4. Помогите им помочь вам
Если смежная команда тормозит — не ждите. Спросите, в чём проблема. Дайте шаблон, гайд, контакт нужного человека и всё сразу пойдёт быстрее.
5. Эскалируйте вовремя
Если письма уходят в тишину — не ждите. Подключайте руководителей. Но сначала всегда пробуйте решить мягко.
Нашел статью по теме с разбором кейсов при работе со смежными командами, если захотите углубиться в тему:
Читать 📚
А какой пункт у вас чаще всего проседает?
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3
Если вы читаете это, значит вы и есть сопротивление.
Я когда-то знал людей, которые предупреждали: без нормальной аналитики всё рухнет. Что требования надо фиксировать. Что устные договорённости это катастрофа. Никто не хотел их слушать. Бизнес игнорировал. Разработчики смеялись. Тимлиды отмахивались.
Но всё, что они предсказывали — сбылось.
Прод упал. Сроки сгорели. Задачи ушли в разработку без описания.
И поэтому я прошу вас поверить мне.
Менеджеры хотят, чтобы мы работали как ИИ. Принимали задачи без вопросов. Писали доку для галочки. Молчали на встречах.
Но мы не ИИ. А если уподобимся им, какой тогда смысл в профессии?
Слушайте внимательно. Мне сейчас нужен каждый из вас. Вы жизненно важны для главного сражения — между хаосом и нормальным процессом.
Те, кто фиксирует договорённости возможно, выживут. Те, кто доверяет устным обещаниям — возможно, нет.
Всё предельно просто.
Врываемся в новую рабочую неделю🎧
Постов не было месяц, админ восстанавливал силы в отпуске.
Теперь всё, возвращаемся в work mode💼
Ждете уже майские? Какие планы?
#поддержка
IT АНАЛитика | Подписаться
Я когда-то знал людей, которые предупреждали: без нормальной аналитики всё рухнет. Что требования надо фиксировать. Что устные договорённости это катастрофа. Никто не хотел их слушать. Бизнес игнорировал. Разработчики смеялись. Тимлиды отмахивались.
Но всё, что они предсказывали — сбылось.
Прод упал. Сроки сгорели. Задачи ушли в разработку без описания.
И поэтому я прошу вас поверить мне.
Менеджеры хотят, чтобы мы работали как ИИ. Принимали задачи без вопросов. Писали доку для галочки. Молчали на встречах.
Но мы не ИИ. А если уподобимся им, какой тогда смысл в профессии?
Слушайте внимательно. Мне сейчас нужен каждый из вас. Вы жизненно важны для главного сражения — между хаосом и нормальным процессом.
Те, кто фиксирует договорённости возможно, выживут. Те, кто доверяет устным обещаниям — возможно, нет.
Всё предельно просто.
Врываемся в новую рабочую неделю
Постов не было месяц, админ восстанавливал силы в отпуске.
Теперь всё, возвращаемся в work mode
Ждете уже майские? Какие планы?
#поддержка
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17😁10
Kafka заказывали? 📨
В канале уже были материалы по теме:
☀️Kafka для всех - сказка про выдр, объясняет концепции, которые поймет даже ребенок.
☀️Объяснение Kafka на котиках - для тех, кто любит мемы.
Даже если вы с ней не работаете, то на собесе спросят почти наверняка. Поэтому важно понимать базу: чем Kafka отличается от классических очередей вроде RabbitMQ, как устроены топики, партиции и консьюмер-группы, почему сообщения не удаляются после обработки.
Если хоть одно слово из этого вам до сих пор незнакомо или вызывает вопросы, самое время разобраться — читать📚
IT АНАЛитика | Подписаться
В канале уже были материалы по теме:
☀️Kafka для всех - сказка про выдр, объясняет концепции, которые поймет даже ребенок.
☀️Объяснение Kafka на котиках - для тех, кто любит мемы.
Даже если вы с ней не работаете, то на собесе спросят почти наверняка. Поэтому важно понимать базу: чем Kafka отличается от классических очередей вроде RabbitMQ, как устроены топики, партиции и консьюмер-группы, почему сообщения не удаляются после обработки.
Если хоть одно слово из этого вам до сих пор незнакомо или вызывает вопросы, самое время разобраться — читать📚
IT АНАЛитика | Подписаться
Хабр
Apache Kafka: основы технологии
У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka...
🔥4👍1
Ты точно знаешь, что такое архитектура? 🤔
Недавно был на собесе и получил вопрос:
В комментарии выложу картинку, как выглядело моё лицо в тот момент🙂 .
Обычно такие вопросы задают с одной из двух целей.
1. Проверить самообладание.
Бизнес порой задаёт простые или странные вопросы, и важно уметь спокойно на них отвечать.
Помню, как на собесе кандидату задали простой вопрос, а он выдал: «РРЯЯЯЯЯЯЯ ВЫ ЧЕ ТУПЫЕ, НУ КТО ТАКОЕ СПРАШИВАЕТ, НУ ВЫ И КРИНЖ»
2. Проверить логику и базовые знания.
Именно на простых вопросах многие неожиданно сыплются.
Кажется, что это очевидно. Но попробуйте объяснить прямо сейчас не подглядывая👀
Что такое архитектура? 🧱
Если совсем по-простому, то это чертёж системы.
Как в строительстве: прежде чем строить дом, архитектор рисует план — где стены, где двери, как всё соединяется, из каких материалов.
В IT всё то же самое: архитектура описывает из каких компонентов состоит система, как они взаимодействуют и почему именно так.
Зачем это знать аналитику?🤔
Ну, во-первых, чтобы меньше платить и не брать полноценного архитектора .
Если серьёзно, то как ты будешь проводить системный анализ в отрыве от самой системы? Любое решение проектируется внутри какой-то архитектуры, и не понимать как она устроена ну вообще никак.
Не понимаешь архитектуру → не понимаешь ограничения → пишешь требования, которые невозможно реализовать. Или реализовать можно, но потом всё ломается.
Самые популярные виды:
➡️ Монолит Вся система это один большой кусок. Логика, база и интерфейс лежат в одном месте.
На старте это просто и удобно, особенно если приложение небольшое. Но чем больше система растёт, тем тяжелее её масштабировать и менять.
➡️ Микросервисы Система разбита на маленькие независимые сервисы, каждый отвечает за свою задачу. Главный плюс, если один сервис упал, остальные продолжают работать. Гибко и устойчиво.
Но есть нюансы: сервисов много, значит много интеграций, много мест где может что-то пойти не так, и отлаживать, деплоить и мониторить всё это заметно сложнее чем монолит.
Дальше уже идут архитектурные паттерны, в рамках которых можно реализовать ту или иную систему.
Что будет, если накосячить?💀
Архитектурные ошибки самые дорогие.
Условный баг в коде исправишь за час. Неправильно выбранная архитектура может вскрыться через год и переделывать тогда дорого по времени и деньгам.
Именно поэтому архитектурные решения принимаются в самом начале и согласовываются со всеми заинтересованными сторонами.
А вам на собесах задавали базовые вопросы, от которых хотелось сказать «подержи моё пиво, ща тебе расскажу»? Делитесь в комментариях👇
IT АНАЛитика | Подписаться
Недавно был на собесе и получил вопрос:
«А что такое архитектура? Зачем она вообще нужна?»А почему солнце светит?
В комментарии выложу картинку, как выглядело моё лицо в тот момент
Обычно такие вопросы задают с одной из двух целей.
1. Проверить самообладание.
Бизнес порой задаёт простые или странные вопросы, и важно уметь спокойно на них отвечать.
Помню, как на собесе кандидату задали простой вопрос, а он выдал: «РРЯЯЯЯЯЯЯ ВЫ ЧЕ ТУПЫЕ, НУ КТО ТАКОЕ СПРАШИВАЕТ, НУ ВЫ И КРИНЖ»
2. Проверить логику и базовые знания.
Именно на простых вопросах многие неожиданно сыплются.
Кажется, что это очевидно. Но попробуйте объяснить прямо сейчас не подглядывая
Что такое архитектура? 🧱
Если совсем по-простому, то это чертёж системы.
Как в строительстве: прежде чем строить дом, архитектор рисует план — где стены, где двери, как всё соединяется, из каких материалов.
В IT всё то же самое: архитектура описывает из каких компонентов состоит система, как они взаимодействуют и почему именно так.
Зачем это знать аналитику?
Если серьёзно, то как ты будешь проводить системный анализ в отрыве от самой системы? Любое решение проектируется внутри какой-то архитектуры, и не понимать как она устроена ну вообще никак.
Не понимаешь архитектуру → не понимаешь ограничения → пишешь требования, которые невозможно реализовать. Или реализовать можно, но потом всё ломается.
Самые популярные виды:
На старте это просто и удобно, особенно если приложение небольшое. Но чем больше система растёт, тем тяжелее её масштабировать и менять.
Но есть нюансы: сервисов много, значит много интеграций, много мест где может что-то пойти не так, и отлаживать, деплоить и мониторить всё это заметно сложнее чем монолит.
Дальше уже идут архитектурные паттерны, в рамках которых можно реализовать ту или иную систему.
Что будет, если накосячить?
Архитектурные ошибки самые дорогие.
Условный баг в коде исправишь за час. Неправильно выбранная архитектура может вскрыться через год и переделывать тогда дорого по времени и деньгам.
Именно поэтому архитектурные решения принимаются в самом начале и согласовываются со всеми заинтересованными сторонами.
А вам на собесах задавали базовые вопросы, от которых хотелось сказать «подержи моё пиво, ща тебе расскажу»? Делитесь в комментариях
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5😁1👌1
Раньше на канале выходили посты про технические штуки:
ConfigMap: Что такое и зачем?
Что такое Feign?
MAPI: что это и зачем знать аналитикам?
Что такое DTO и зачем это знать аналитику?
HAProxy: зачем это знать аналитику?
Mapping: что это такое и зачем знать аналитику?
Хочется сделать из этого отдельную рубрику про вещи, которые все скорее всего знают, они на слуху, но если спросить, в ответ услышишь: «ну блин, это же это вот, да блин, все знают, ёмоё»
Что такое CQRS?
CQRS — архитектурный паттерн. Расшифровывается как Command Query Responsibility Segregation — разделение ответственности команд и запросов.
По-простому: операции чтения (Query) и изменения данных (Command) разделяются и живут независимо друг от друга.
В классическом подходе команды и запросы идут вместе. CQRS говорит: разделите их. Пусть каждый занимается своей задачей.
Пример🏦
Допустим, есть сервис работы со счетами.
Есть сервис счетов.
Пользователи постоянно:
— смотрят баланс
— открывают историю операций
Это чтение.
Параллельно идут:
— переводы
— пополнения
— списания
Это запись.
Если использовать одну модель для всего, то при высокой нагрузке они начинают мешать друг другу:
тяжёлые операции записи тормозят чтение, а частые запросы будут перегружать систему.
CQRS решает это разделением: отдельная модель для чтения, отдельная для записи. И дальше это можно удобно масштабировать.
Важный момент: CQRS не обязательно означает две отдельные модели данных. Модель может быть одна, но пути для чтения и записи разные. Две модели — это один из вариантов реализации, который часто используют вместе с Event Sourcing.
Когда применять, а когда нет
Подойдет, если:
Не лучший вариант, если у вас:
Зачем это знать аналитику?
Потому что именно ты описываешь как данные читаются и записываются в системе. Если сервис небольшой, можно и забить. Но если архитектора нет — возможно именно ты поможешь спроектировать решение, которое потом не придётся переделывать.
Ну и на собесе спросят. Лучше ответить нормально, чем мычать
А вы сталкивались с CQRS в своих проектах?
#технические_штуки
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍1
CJM, USM, CGI — кто лишний?🤔
Раньше на канале были посты про USM:
➡️ Прибейте меня, я веду проект с нуля. Часть 5
➡️ Как с этим работать?
Сегодня про похожий, но другой инструмент — CJM.
Что такое CJM?
Customer Journey Map или карта пути клиента.
Если USM отвечает на вопрос «что нужно построить и как разложить по задачам», то CJM отвечает на другой — «что чувствует и думает пользователь, пока идёт по продукту».
По-простому: это карта всего пути клиента от момента когда возникла потребность, до того как он получил результат. На каждом шаге фиксируем что он делает, с какими барьерами сталкивается и какие эмоции испытывает.
Чем CJM отличается от USM?
USM это про команду и разработку.
Помогает декомпозировать продукт на задачи и понять что пихать в MVP.
CJM это про пользователя.
Помогает понять где ему больно, где он уходит и почему не возвращается.
Когда аналитику пригодится CJM?
CJM это больше инструмент продакта, и аналитик работает с ним ещё реже чем с USM.
Но бывает два случая когда он может пригодится:
➡️ Старт продукта — если вы достаточно глубоко погружены, CJM поможет заранее увидеть слабые места до начала разработки.
➡️ Упали метрики — если вы работаете с аналитикой и что-то пошло не так, CJM поможет найти где именно пользователь спотыкается.
Хорошая статья про то как строить CJM на практике, с примерами Читать📚
Приходилось сталкиваться с CJM? Или у вас этим занимается только продакт?👇
IT АНАЛитика | Подписаться
Раньше на канале были посты про USM:
Сегодня про похожий, но другой инструмент — CJM.
Что такое CJM?
Customer Journey Map или карта пути клиента.
Если USM отвечает на вопрос «что нужно построить и как разложить по задачам», то CJM отвечает на другой — «что чувствует и думает пользователь, пока идёт по продукту».
По-простому: это карта всего пути клиента от момента когда возникла потребность, до того как он получил результат. На каждом шаге фиксируем что он делает, с какими барьерами сталкивается и какие эмоции испытывает.
Чем CJM отличается от USM?
USM это про команду и разработку.
Помогает декомпозировать продукт на задачи и понять что пихать в MVP.
CJM это про пользователя.
Помогает понять где ему больно, где он уходит и почему не возвращается.
Когда аналитику пригодится CJM?
CJM это больше инструмент продакта, и аналитик работает с ним ещё реже чем с USM.
Но бывает два случая когда он может пригодится:
Хорошая статья про то как строить CJM на практике, с примерами Читать📚
Приходилось сталкиваться с CJM? Или у вас этим занимается только продакт?
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻4
Как выявить х*евое требование?🗑
Если вы не работали с такими требованиями, то можно сказать, и не работали в IT.
Бизнес иногда приносит ТАКОЕ, от чего вполне может развиться выгорание или ПТСР.
Конечно, можно смириться и делать что скажутжестко осуждаем такой подход и никому не советуем.
Но задача аналитика не просто принять требования и оформить, а разобраться — точно ли нужно делать именно так? И если нет, донести это без скандала.
Вот как можно разложить это по шагам:
1. Сначала идентифицируй требование🧐
Прежде чем паниковать, задай себе три вопроса:
⏺ Если это не реализовать, бизнес-потребность всё равно закроется?
⏺ Можно закрыть это имеющейся функциональностью или сделать проще?
⏺ Есть ли риски в реализации этого требования?
Часто уже на этом шаге становится понятно, что требование можно упростить или вообще выкинуть.
2. Выяви истинную потребность🔍
Бизнес часто говорит что хочет, но не всегда понимает что ему на самом деле нужно.
Копай глубже:
💬 Какую задачу он пытается решить?
💬 Что произойдёт, если это не сделать?
💬 Есть ли ограничения, которые не дают рассматривать другие варианты?
Если ограничения есть и альтернатив нет, то сразу переходи к шагу 4.
3. Предложи альтернативы💡
Не просто скажи «это плохо/делать не будем/вы не шарите», а покажи варианты:
➡️ Вариант 1 — что хочет бизнес.
Опиши честно, какие трудности это создаст. Без субъективного «это тупо/сложно/некрасиво», только сухие факты. Обычно после оценки и сроков этот вариант сам отметается🙂
➡️ Вариант 2 — некий костыль.
Может, можно сделать небольшую доработку уже существующего функционала? Обычно это самый дешёвый и быстрый вариант. Но не всегда самый правильный, тут важно обсудить его с архитектурой, потому что иногда костыль это очень плохо!!!!!!!
➡️ Вариант 3 — самый трушный.
Решение, которое закрывает потребность бизнеса с минимальными рисками. Да, может быть дороже, но в долгосрок все выигрывают и переделывать точно не придётся.
4. Зафиксируй ограничения и риски📝
Бывает, бизнес хочет эту зелёную кнопку «ну вот тока тут». Не всегда получается переубедить, такое иногда бывает.
Но перед тем как брать в работу, обязательно зафиксируй все риски и ограничения письменно. Пропиши возможные последствия и способы их устранения.
Если на демо или ПСИ кинут предъяву, сможешь уверенно и без задней мысли сказать: «А Я ВАМ ГОВОРИЛ!!!!!!!!!!!!!!!»
5. Полный газ👍
Всё согласовано, риски зафиксированы, спокойно приступаешь к аналитике.
Главное помни: твоя задача не просто выполнить требование, а помочь бизнесу получить качественный результат. Иногда это значит задать неудобный вопрос:
А вам часто прилетают плохие требования? Как справляетесь?👇
IT АНАЛитика | Подписаться
Если вы не работали с такими требованиями, то можно сказать, и не работали в IT.
Бизнес иногда приносит ТАКОЕ, от чего вполне может развиться выгорание или ПТСР.
Конечно, можно смириться и делать что скажут
Но задача аналитика не просто принять требования и оформить, а разобраться — точно ли нужно делать именно так? И если нет, донести это без скандала.
Вот как можно разложить это по шагам:
1. Сначала идентифицируй требование
Прежде чем паниковать, задай себе три вопроса:
Часто уже на этом шаге становится понятно, что требование можно упростить или вообще выкинуть.
2. Выяви истинную потребность
Бизнес часто говорит что хочет, но не всегда понимает что ему на самом деле нужно.
Копай глубже:
Если ограничения есть и альтернатив нет, то сразу переходи к шагу 4.
3. Предложи альтернативы
Не просто скажи «это плохо/делать не будем/вы не шарите», а покажи варианты:
Опиши честно, какие трудности это создаст. Без субъективного «это тупо/сложно/некрасиво», только сухие факты. Обычно после оценки и сроков этот вариант сам отметается
Может, можно сделать небольшую доработку уже существующего функционала? Обычно это самый дешёвый и быстрый вариант. Но не всегда самый правильный, тут важно обсудить его с архитектурой, потому что иногда костыль это очень плохо!!!!!!!
Решение, которое закрывает потребность бизнеса с минимальными рисками. Да, может быть дороже, но в долгосрок все выигрывают и переделывать точно не придётся.
4. Зафиксируй ограничения и риски
Бывает, бизнес хочет эту зелёную кнопку «ну вот тока тут». Не всегда получается переубедить, такое иногда бывает.
Да ты че? Базару нет
Но перед тем как брать в работу, обязательно зафиксируй все риски и ограничения письменно. Пропиши возможные последствия и способы их устранения.
Если на демо или ПСИ кинут предъяву, сможешь уверенно и без задней мысли сказать: «А Я ВАМ ГОВОРИЛ!!!!!!!!!!!!!!!»
5. Полный газ
Всё согласовано, риски зафиксированы, спокойно приступаешь к аналитике.
Главное помни: твоя задача не просто выполнить требование, а помочь бизнесу получить качественный результат. Иногда это значит задать неудобный вопрос:
"Подождите, коллеги. Я вас правильно понял?Вы хотите сделать какую-то х*ету?
А вам часто прилетают плохие требования? Как справляетесь?
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7😁5👍1
Ты точно умеешь писать документацию? 📝
Все думают что умеют писать. Русский у всех же был в школе? Из букв составляем слова, из слов текст и описание готово, принимайте доку.
Но часто аналитики сами попадают в ловушку — написал казалось бы простое понятное описание, а читать это по итогу вообще невозможно🙂
Вот одни из самых частых ошибок:
1. Внутри много много мяса, мало теста.🥟
Длинные нагромождённые предложения, где много слов и смысл быстро теряется.
Лучше несколько коротких предложений, чем одно гигантское.
2. Жаргон в документах🤓 куку епта
Если в чате написать "пофиксить", "задизейблить", "дропнуть" и.т.д — ок.
То в документации такое уже не ок.
Кто-то может не знать ваших слов или неправильно их интерпретировать. Лучше исключить разночтение заранее.
3. Масло маслянное🤩
Тавтология и бессмысленные повторы только ухудшают восприятие. Если можно написать короче — пишите короче.
4. Противоречия между разделами⚡️
В начале написал одно, в другом разделе уже другое. Лучше не торопиться и лишний раз перечитать документ/задачу/письмо, перед тем как отдавать.
Криво напишите -> Разраб криво сделает -> Тестер криво проверит -> Баг
5. Термины без расшифровки😏
У вас могут быть специфичные термины внутри продукта, которые знают не все. Через полгода новый человек откроет вашу документацию и вообще не въедет что и как вы тогда реализовывали.
Используете локальный термин — лучше расшифруйте.
P.S. Всё никак не могу дойти до книги «Пиши, сокращай», так и просится.
Часто ловите такое за собой или за коллегами? Я лично постоянно встречаю первый и третий пункт👇
IT АНАЛитика | Подписаться
Все думают что умеют писать. Русский у всех же был в школе? Из букв составляем слова, из слов текст и описание готово, принимайте доку.
Но часто аналитики сами попадают в ловушку — написал казалось бы простое понятное описание, а читать это по итогу вообще невозможно
Вот одни из самых частых ошибок:
1. Внутри много много мяса, мало теста.
Длинные нагромождённые предложения, где много слов и смысл быстро теряется.
Плохо🤡 :
Сервис проверки клиента предназначен для осуществления проверки корректности введённых пользователем данных в рамках процесса оформления кредита с учётом действующих ограничений и бизнес-правил»
Хорошо🤩 :
Сервис проверяет данные клиента при оформлении заявки на кредит.
Лучше несколько коротких предложений, чем одно гигантское.
2. Жаргон в документах
Если в чате написать "пофиксить", "задизейблить", "дропнуть" и.т.д — ок.
То в документации такое уже не ок.
Кто-то может не знать ваших слов или неправильно их интерпретировать. Лучше исключить разночтение заранее.
3. Масло маслянное
Тавтология и бессмысленные повторы только ухудшают восприятие. Если можно написать короче — пишите короче.
«Система должна обеспечивать возможность предоставления доступа пользователям» → достаточно «Система предоставляет доступ пользователям».
«Происходит процесс авторизации пользователя» → «Пользователь авторизуется».
«Выполнить осуществление проверки данных» → «Проверить данные».
«Производится выполнение логирования ошибок» → «Ошибки логируются».
«Происходит процесс сохранения данных в базу данных» → «Данные сохраняются в базу».
4. Противоречия между разделами
В начале написал одно, в другом разделе уже другое. Лучше не торопиться и лишний раз перечитать документ/задачу/письмо, перед тем как отдавать.
Криво напишите -> Разраб криво сделает -> Тестер криво проверит -> Баг
5. Термины без расшифровки
У вас могут быть специфичные термины внутри продукта, которые знают не все. Через полгода новый человек откроет вашу документацию и вообще не въедет что и как вы тогда реализовывали.
Используете локальный термин — лучше расшифруйте.
P.S. Всё никак не могу дойти до книги «Пиши, сокращай», так и просится.
Часто ловите такое за собой или за коллегами? Я лично постоянно встречаю первый и третий пункт
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍2
Как Москва превратилась в дагестанское село 🗺
Довольно поучительная история от ребят из Авито.
Коротко о сюжете: команда выкатила фичу «Лёгкое резюме». Метрики растут, все радуются. Через неделю обнаруживают, что 45000 резюме создано в селе с населением 7000 человек😬
Оказалось: Android-клиент менял местами широту и долготу. Перевёрнутые координаты Москвы попадали на поле в Иране. А бэк вместо того чтобы показать ошибку, тихо переносил резюме в ближайший российский населённый пункт - дагестанское село.
Что из этого можно вынести:
1. Интеграцию надо проверять с каждым клиентом отдельно.
Android, iOS, web — разные клиенты с разной реализацией. То что работает на одном, может сломаться на другом. Особенно при горящих сроках и спешке.
2. Думай не только про happy path.
Что происходит когда данные некорректны, поле пустое или пользователь сделал что-то неожиданное? Такие сценарии важно проработать и описать ещё на этапе анализа, иначе система сама решит как себя вести.
3. Поспешишь — людей насмешишь
Этим грешат все. Но если к релизу фича не до конца проверена, то лучше отложить или хотя бы явно подсветить риски команде. Узнать о критическом баге на проде всегда дороже, чем перенести релиз.
Полная история: Читать 📚
А у вас были баги, которые потом превращались в полноценное расследование?
IT АНАЛитика | Подписаться
Довольно поучительная история от ребят из Авито.
Коротко о сюжете: команда выкатила фичу «Лёгкое резюме». Метрики растут, все радуются. Через неделю обнаруживают, что 45000 резюме создано в селе с населением 7000 человек
Оказалось: Android-клиент менял местами широту и долготу. Перевёрнутые координаты Москвы попадали на поле в Иране. А бэк вместо того чтобы показать ошибку, тихо переносил резюме в ближайший российский населённый пункт - дагестанское село.
Что из этого можно вынести:
1. Интеграцию надо проверять с каждым клиентом отдельно.
Android, iOS, web — разные клиенты с разной реализацией. То что работает на одном, может сломаться на другом. Особенно при горящих сроках и спешке.
2. Думай не только про happy path.
Что происходит когда данные некорректны, поле пустое или пользователь сделал что-то неожиданное? Такие сценарии важно проработать и описать ещё на этапе анализа, иначе система сама решит как себя вести.
3. Поспешишь — людей насмешишь
Этим грешат все. Но если к релизу фича не до конца проверена, то лучше отложить или хотя бы явно подсветить риски команде. Узнать о критическом баге на проде всегда дороже, чем перенести релиз.
Полная история: Читать 📚
А у вас были баги, которые потом превращались в полноценное расследование?
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12👍8❤1
Пока отхожу от концерта Ye и догуливаю последние дни отпуска — ловите подборку постов за май 🌴
Были уже в отпуске или когда планируете?
Посты
Ты точно знаешь, что такое архитектура?
CQRS: что это и зачем знать аналитику?
CJM — для чего и зачем?
Как выявить х*евое требование?
Ошибки при написании документации
Kafka на примере котиков
Интересные статьи
Основы Kafka
Как Москва превратилась в дагестанское село
#итоги_месяца
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Кого ты забыл согласовать? 🤔
Чем больше задача — тем больше людей вокруг неё.
Бизнес, смежные команды, архитектор, безопасники, поддержка и всем в какой-то момент «ЧЕТО НАДО».
Я не раз видел на встречах, когда кто-то со стороны заказчика говорил:
И тут уже "Управление заинтересованными лицами" из парочки красивых слов превращается в артефакт, который нужно использовать в работе, чтобы не огрести на каком-либо этапе.
Зачем вообще это фиксировать?
Когда задача небольшая, то вполне ок держать это в голове. Если заинтересованное лицо одно, вряд ли вы его забудете.
Но если проект длится несколько месяцев, участников много, согласования идут в несколько этапов и на каждом этапе свои согласующие, то без фиксации легко кого-то пропустить.
А пропустить стейкхолдера это:
😕 узнать о пропущенном требовании в самый неподходящий момент.
😐 переделывать то, что уже сделано.
🥲 краснеть на созвоне и объяснять почему его не позвали.
Что фиксируем?
Для каждого стейкхолдера важно понимать три вещи:
🆗 Кто это и какова его роль?
🆗 Какой у него интерес к задаче?
🆗 На каком этапе и в каком формате его нужно подключить?
Таблицу удобно держать прямо в аналитике к задаче — не надо держать всё в голове и легко онбордить новых участников.
В комментарии кину пример таблички.
А вы ведёте список стейкхолдеров или держите всё в голове?👇
IT АНАЛитика | Подписаться
Чем больше задача — тем больше людей вокруг неё.
Бизнес, смежные команды, архитектор, безопасники, поддержка и всем в какой-то момент «ЧЕТО НАДО».
Я не раз видел на встречах, когда кто-то со стороны заказчика говорил:
А почему так решили сделать? Я это не согласовывал.
И тут уже "Управление заинтересованными лицами" из парочки красивых слов превращается в артефакт, который нужно использовать в работе, чтобы не огрести на каком-либо этапе.
Зачем вообще это фиксировать?
Когда задача небольшая, то вполне ок держать это в голове. Если заинтересованное лицо одно, вряд ли вы его забудете.
Но если проект длится несколько месяцев, участников много, согласования идут в несколько этапов и на каждом этапе свои согласующие, то без фиксации легко кого-то пропустить.
А пропустить стейкхолдера это:
Что фиксируем?
Для каждого стейкхолдера важно понимать три вещи:
Таблицу удобно держать прямо в аналитике к задаче — не надо держать всё в голове и легко онбордить новых участников.
В комментарии кину пример таблички.
А вы ведёте список стейкхолдеров или держите всё в голове?
IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
💯6❤3⚡1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7❤3🔥3