Системный аналитик: профессия, которая меняет жизнь
Если коротко: это одна из самых✨ интересных✨ и ✨ благодарных✨ профессий в IT.
Ты в команде разработки, но не кодишь. Участвуешь в создании продукта, но не сидишь с бессонными ночами у компа.
Но в то же время ты остаёшься тем, кто понимает, как всё устроено и как связать бизнес, пользователей и разработчиков!🎂
🔑 Плюсы профессии
👉 Удалёнка 🪑
👉 Высокая зарплата (туда же и премии) 💸
👉 Бонусы от компании 🎉
👉 Гибкость в графике 💻
👉 Разнообразие задач 🍌
👉 Рост 📞
🚀 Почему это интересно?
Потому что это не подработка в кофейне, не смена на заводе и не "попробую продавать на ВБ".
Ты не привязан к кассе и не зависишь от капризов клиентов.
Ты получаешь больше свободы и роста:
И плюсик - каждый день узнаёшь, как устроены приложения и сервисы, которыми пользуются миллионы людей.
Это реально увлекает и даёт ощущение, что ты двигаешь прогресс, а не просто закрываешь смену)
🧷 🧷 🧷 🧷 🧷 🧷 🧷 🧷 🧷 🧷 🧷
А если хочешь стартовать быстро и с практикой, приходи на наш➡️ курс по системному анализу⬅️ .
Там мы учим всему, что реально нужно в профессии на старте: от требований и диаграмм до общения с командой и заказчиками)
Если коротко: это одна из самых
Ты в команде разработки, но не кодишь. Участвуешь в создании продукта, но не сидишь с бессонными ночами у компа.
Но в то же время ты остаёшься тем, кто понимает, как всё устроено и как связать бизнес, пользователей и разработчиков!
📎 Можно работать из любой точки мира.
Да, нужно учиться разделять работу и личное время, но свобода того стоит)📎 (кстати, о соблюдении ворлайф баланса мы тоже писали пост !)
📎 Аналитики востребованы и рынок это ценит. А уж хороший аналитик всегда в цене)📎
📎 ДМС, спортзал, оплата обучения, психологи - всё чаще это норма.📎
📎 Если правильно выстроить процессы, реально работать 4–5 часов в день, а остальное время жить свою жизнь📎
📎 Сегодня проектируешь процессы, завтра работаешь с UX, послезавтра разбираешь интеграцию.
Скучно не бывает.📎
📎 Чем больше вникаешь в технику, тем быстрее растёшь в грейде и зарплате.📎
Потому что это не подработка в кофейне, не смена на заводе и не "попробую продавать на ВБ".
Ты не привязан к кассе и не зависишь от капризов клиентов.
Ты получаешь больше свободы и роста:
👉 Сам управляешь своим временем и не пашешь по 12 часов👉 Работаешь головой, а не на износ👉 Зарабатываешь больше и чувствуешь себя увереннее
И плюсик - каждый день узнаёшь, как устроены приложения и сервисы, которыми пользуются миллионы людей.
Это реально увлекает и даёт ощущение, что ты двигаешь прогресс, а не просто закрываешь смену)
А если хочешь стартовать быстро и с практикой, приходи на наш
Там мы учим всему, что реально нужно в профессии на старте: от требований и диаграмм до общения с командой и заказчиками)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4😍4👍3
Софт-скиллы аналитика: без них никуда
SQL, интеграции и UML - это всё классно.
Но если ты не умеешь договариваться, то твоя карьера будет…как чайник без воды: шумит, но пользы нет😔
Вот софт-скиллы, которые реально решают👇
🗣 Задавай вопросы
👂 Слушай
🤝 Будь дипломатом
🧠 Думай критически
🤔 Что мы поняли?
Аналитик без софт-скиллов это как рилс без звука: что-то происходит, но смысла никто не понимает...
Технику можно добить курсами и практикой. А вот умение слушать, уточнять и договариваться придётся качать каждый день как мышцы)
SQL, интеграции и UML - это всё классно.
Но если ты не умеешь договариваться, то твоя карьера будет…как чайник без воды: шумит, но пользы нет
Вот софт-скиллы, которые реально решают
Боишься показаться глупым? Хуже выглядеть умным и написать фигню.
Вот пример:➡️ Заказчик говорит: "Надо ускорить процесс".➡️ Ты уточняешь: "Что именно тормозит: ввод данных, согласование или сервер?".
Без уточнения разработчики будут оптимизировать вообще не то...
Закрой рот, открой уши!
Половина ответов всплывает сама, если дать человеку договорить. Иногда заказчик сам формулирует требование, пока проговаривает проблему. И твоя суперсила - не перебивать в этот момент)
Ты всегда между бизнесом и разработкой. Не умеешь договариваться? Получишь роль громоотвода...
Бизнес говорит: "сделайте срочно!", разработка отвечает: "это невозможно".
Аналитик переводит: "Нам нужно потому-то, вот компромиссный вариант".
И да, иногда твой скилл "держать лицо" важнее, чем знание REST API.
"Добавьте кнопку" ≠ требование. Это костыль. А вот требование - это "сократить время оформления заказа".
Твоя задача докопаться до сути, а не бегать с кнопками по проекту.
Аналитик без софт-скиллов это как рилс без звука: что-то происходит, но смысла никто не понимает...
Технику можно добить курсами и практикой. А вот умение слушать, уточнять и договариваться придётся качать каждый день как мышцы)
Please open Telegram to view this post
VIEW IN TELEGRAM
User stories и acceptance criteria: почему аналитики их любят
Новички часто думают:
Но в реальности его никто его не читает. Максимум пролистают до картинок...
А вот короткие user stories и понятные acceptance criteria читают все: бизнес, разработка, тестировщики. И да, ещё иногда сами аналитики(редкость, но бывает) .
👤 User story - как мини-рассказ на одну строчку.
Формула простая: как [кто]➡️ хочу [что] ➡️ чтобы [зачем].
Красота в том, что бизнесу сразу ясно: "ага, цель - это экономия времени клиента".
✅ Acceptance criteria ➡️ чек-лист счастья
Юзер стори без критериев - как сериал без финальной серии...Вроде интригует, но непонятно, чем кончилось.
Теперь у QA есть сценарии, у разработчиков ориентир, у бизнеса гарантия, что сделали именно то, что хотели.
◽️ Почему это работает◽️
➡️ Разработчики понимают, что именно кодить, а не "сделайте удобно".
➡️ QA получают готовую основу для тестов.
➡️ Бизнес видит: цель достигнута.
И самое главное: их реально читают, в отличие от 40-страничного ТЗ, которое пылится в Confluence и пугает даже автора...
➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿
И бонусом прилагаем🫸 ошибки🫷 в user stories, которые встречаются чаще всего, чтобы вы сразу узнали врага в лицо))
❌ "Как система, хочу.."
❌ Описывать слишком общо.
❌ Забыли acceptance criteria.
❌ Копипаста ради галочки.
Новички часто думают:
Сейчас настрочу ТЗ на 40 страниц, вот это будет документ!🤭
Но в реальности его никто его не читает. Максимум пролистают до картинок...
А вот короткие user stories и понятные acceptance criteria читают все: бизнес, разработка, тестировщики. И да, ещё иногда сами аналитики
Формула простая: как [кто]
📎 Например📎 :
"Как покупатель, хочу оформить заказ в 1 клик, чтобы не вводить данные каждый раз".
Красота в том, что бизнесу сразу ясно: "ага, цель - это экономия времени клиента".
Юзер стори без критериев - как сериал без финальной серии...Вроде интригует, но непонятно, чем кончилось.
📎 Пример критериев приёмки📎 1️⃣ Кнопка "Заказать в 1 клик" есть на странице товара.2️⃣ При клике подтягиваются сохранённые данные.3️⃣ Система формирует заказ и шлёт уведомление.
Теперь у QA есть сценарии, у разработчиков ориентир, у бизнеса гарантия, что сделали именно то, что хотели.
И самое главное: их реально читают, в отличие от 40-страничного ТЗ, которое пылится в Confluence и пугает даже автора...
И бонусом прилагаем
Система - не человек. У неё нет желаний. Это сразу минус карма.
"Как пользователь, хочу удобный интерфейс".
Красиво, но что делать непонятно.
Без них user story превращается в загадку: сделали или не сделали? Кто знает.😐
Когда все истории звучат одинаково: "Как пользователь, хочу кнопку, чтобы было хорошо".
Никто их не читает, даже ты сам)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏4😁4
Сегодня у нас история Леры: ещё недавно она работала в образовании с низкой зп, а теперь она системный аналитик с зарплатой 160 тысяч.
Мы поговорили с ней о пути, трудностях и победах.
Лера:
Ох...Занималась много чем, последнее место работы - в образовании. Давно хотела сменить курс.
В айти порекомендовал пойти брат. Купила курс скилбокс BI аналитик, после окончания начала искать работу, но как оказалось, что ты без опыта не нужен никому. А в Скилбокс не особо могли помочь...зп на старте максимум 30 тр.
И в процессе поиска случайно наткнулась на сайт ProSySTalent.
Написала, прошла обучение, собесы, устроилась на работу. Сейчас работаю по аутсорсу, зп 160 тр.
Лера:
Тяжёлый труд и маленькая зарплата)).
Лера:
До сих пор есть!)) Постоянно нужно учиться и развиваться. Уверенность появилась только на работе, когда пошли первые положительные результаты.
Лера:
Для меня увлекательно было всё) Нравилось рисовать макеты, чертить схемы.
Лера:
До десяти. Но именно второй собес "стрельнул".
Оффер был один, но меня в нём все устраивало, так что долго я не думала и никого с ответом не ждала.
Лера:
Ура! Для меня собесы - это треш))
Лера:
Меня сразу кинули на задачи))
Причем API надо было сделать в Свагерре, просидела все выходные и ночи, чтобы изучить. На задачу было 4 дня.
Сдала в итоге вовремя, но чуть не сошла с ума) Ручка вышла на 2000 строк...
Ну и последующие задачи все были малознакомы, пришлось коммуницировать, уточнять.
По итогу всё не так и страшно. Косяки есть у всех, даже у людей с огромным опытом.
Лера:
На моём проекте мы не только СА, мы - фуллстек, нужно уметь делать все.
Последнее время были задачи по БА, там у меня вообще огонь!)
А из СА точно могу сказать, что рисовать схемы, стори и кейсы мне зашли больше.
Нравится, когда у тебя получается и положительный фидбек.
Лера:
Обычно не больше 8 часов, не нужно убиваться) Последние недели просто сидим, задачи все закрыли.
Лера:
Мне нравится то, чем я занимаюсь. И конечно с ростом бюджета появляется много возможностей)
Лера:
Не бойтесь пробовать новое, у вас все получится, нужно немного сил и терпения.
Лера: Хотим купить дом) И отдыхать начали 2 раза в год, при условии, что у меня двое детей)
из образования
Please open Telegram to view this post
VIEW IN TELEGRAM
prosystalent.ru
Профессия «Системный аналитик» за 6 недель. Обучаем и трудоустраиваем в IT — вы платите только после выхода на работу
Онлайн курс, помощь в трудоустройстве, заработная плата от 140 000 руб
🔥4👍3👏3💯1
Аналитик и дизайнер: любовь, логика и пиксели
Сегодня поговорим о той самой связке, без которой любой проект рискует превратиться в миленький, но бардак👉 об отношениях аналитика и дизайнера.
Потому что можно придумать самую логичную схему на свете, но если интерфейс не отражает логику, то пользователи точно пойдут не туда.
🎨 Когда логика встречает ✨ эстетику✨
У начинающего аналитика часто появляется соблазн отойти в сторону:
А потом наступает демо...ты смотришь на макет....и видишь: красиво, модно, всё ровненько,
только вот бизнес-логика плачет в сторонке.
Важно понимать, что интерфейс - это не просто картинка, а продолжение сценария, который ты описал.
Если шаги перепутаны или подсказки убраны, то логика ломается.
👍 Почему аналитик должен участвовать в дизайне?
Потому что именно ты знаешь контекст задачи: кто пользователь, зачем он сюда пришёл, и чего мы вообще хотим добиться.
Без этого понимания дизайнеру тяжеловато: он рисует интерфейс🖐 по ощущениям 🖖 , а не по логике.
📎 Вот пример
💬 Как общаться с дизайнером и не устраивать пиксельные войны
Мы много раз видели, как аналитики спорят с дизайнерами до хрипоты.
А на самом деле всё решается одной привычкой - говорить про логику, а не вкусовщину.
📎 Ещё пример:
Но есть выход - вместе находим вариант, где и красиво, и работает.
🧠 Фразы, которые спасут ваши нервы
✔️ "Супер выглядит! Можно я уточню сценарий?"
✔️ "А давай посмотрим глазами пользователя?"
✔️ "Мне нравится, но тут может сломаться бизнес-логика".
✔️ "А если сделать вот так, что думаешь?"
И самая проверенная😎
✔️ "Заказчик сказал сделать так, значит придётся так"
Так что дружи с дизайнером.
Он поможет сделать твои схемы живыми, а ты - его макеты умными)
Сегодня поговорим о той самой связке, без которой любой проект рискует превратиться в миленький, но бардак
Потому что можно придумать самую логичную схему на свете, но если интерфейс не отражает логику, то пользователи точно пойдут не туда.
У начинающего аналитика часто появляется соблазн отойти в сторону:
Дизайн - не моя зона ответственности. Пусть дизайнер сам решает, где какие кнопки.😄
А потом наступает демо...ты смотришь на макет....и видишь: красиво, модно, всё ровненько,
только вот бизнес-логика плачет в сторонке.
Важно понимать, что интерфейс - это не просто картинка, а продолжение сценария, который ты описал.
Если шаги перепутаны или подсказки убраны, то логика ломается.
Потому что именно ты знаешь контекст задачи: кто пользователь, зачем он сюда пришёл, и чего мы вообще хотим добиться.
Без этого понимания дизайнеру тяжеловато: он рисует интерфейс
Кнопка "Отправить" стоит до поля для ввода.
Нет обозначения обязательных полей.
Подсказка спрятана, потому что🖐 так красивее🖖 .
И всё, сценарий пошёл вообще не так, как надо....
Мы много раз видели, как аналитики спорят с дизайнерами до хрипоты.
А на самом деле всё решается одной привычкой - говорить про логику, а не вкусовщину.
👨🎨 Дизайнер: "Я уберу подсказку, она мешает".💻 Аналитик: "Если её убрать, пользователь не поймёт, что поле обязательное. Система вернёт ошибку".
Но есть выход - вместе находим вариант, где и красиво, и работает.
И самая проверенная
Так что дружи с дизайнером.
Он поможет сделать твои схемы живыми, а ты - его макеты умными)
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4🔥3💯3
Этот месяц посвятим интеграции - тому, как системы обмениваются данными и зачем всё это нужно бизнесу.
Представь, есть сайт, где пользователь оформляет заказ, и есть отдельная система склада.
Когда заказ создан, сайт должен передать данные о нём на склад, чтобы там зарезервировали товар.
Это и есть
HTTP-запросу
(например,
POST /createOrder)Если интеграция выстроена правильно, то данные попадают туда, куда нужно, а пользователи даже не задумываются, что внутри происходят десятки обменов.
Он отвечает за то, чтобы обе стороны одинаково понимали:
(например,
400 Bad Request или 500 Internal Server Error).(например, создание документа).
(JSON, XML, CSV).
В следующих постах мы поговорим о подробнее о том,
(и почему их часто сравнивают)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤝3❤2
Продолжаем цикл про интеграции.
Сегодня разберёмся, что такое API и зачем аналитику вообще туда смотреть.
API - это способ, с помощью которого одна система обращается к другой.
Можно представить, что это меню в кафе:
Ты выбираешь блюдо (метод), добавляешь параметры (например, “без лука”), отправляешь заказ и ждёшь ответ.
Запрос выглядит примерно так:
POST /login
{
"login": "user@mail.ru",
"password": "1234"
}
А в ответ приходит:
{
"status": "ok",
"userId": 42
}Вот и всё. Система сказала: "Принято, вот твой ID".
Чтобы все понимали, как вызывать методы и какие данные ждать, создают
В ней описано:
(например,
/login, /user),(
GET, POST, PUT, DELETE),(обязательные и необязательные)
{
"jsonrpc": "2.0",
"method": "user.getInfo",
"params": { "userId": 42 },
"id": 1
}А ответ приходит с тем же id и результатом внутри result.
Откуда метод берёт информацию и что возвращает: база, внешний сервис, кэш.
Например, дата может быть 2025-10-13 или 13.10.2025. Если не уточнить - потом будет весело...
Что значит 400, 401, 500, и что делает система в каждом случае.
Методы редко работают поодиночке. Часто один вызывает другой, и важно понять цепочку.
В следующем посте разберём тело запроса и ответа детальнее:
где
headers, где body, зачем нужны query-параметры и как по спецификации понять, что и откуда приходит.Поставь напоминание на следующую часть, чтобы не потерять нить)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1👏1
В прошлый раз мы разобрались, что такое API и зачем вообще смотреть в спецификацию.
Сегодня шаг глубже.
Посмотрим, из чего состоит запрос и как читать структуру ответа.
Когда система просит что-то у другой системы, она отправляет запрос.
У запроса три основные части:
POST https://api.site.ru/user/create
В ней хранятся метаданные: тип контента, авторизация, ключи.
Например:
Content-Type: application/json
Authorization: Bearer token123
Иногда вместо body данные передают через query-параметры (после вопросительного знака):
GET /user/get?userId=42
Сервер всегда что-то возвращает. Даже если это ошибка.
Обычно структура такая:
{
"status": "ok",
"result": {
"userId": 42,
"name": "Алексей"
}
}Если что-то пошло не так, приходит ошибка:
{
"status": "error",
"code": 401,
"message": "Unauthorized"
}200 (успешно), 400 (ошибка клиента), 500 (ошибка сервера).{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32602,
"message": "Invalid params",
"data": {
"field": "userId"
}
}
}Поле error всегда содержит код, сообщение и, при необходимости, дополнительные данные.
Это помогает понять, где именно ошибка: в запросе, авторизации или логике метода.
В следующем посте пойдём дальше - сравним REST и SOAP, разберёмся, чем они отличаются и почему от одного из них уже все устали...
Сохрани пост, чтобы не потерять продолжение)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2❤1😁1
Forwarded from Аналитика данных / Data Study
☑️ Чек-лист идеального сотрудника для компании
Считаете, что застряли на месте в компании и не понимаете как расти дальше? Хотите, но боитесь попросить повышение? Боитесь стать ненужным сотрудником, которого вот-вот могут уволить?
Расскажу со своей стороны какого сотрудника хотят видеть у себя компании, кого ценят и готовы удерживать у себя, потому что вы слишком ценны и не заменимы.
1️⃣ Иметь гибкое мышление и быть готовым учиться новому
Должно быть так:
Мир технологий очень гибок, даже банальная смена инструмента с Postgres на Clickhouse или миграция с Power BI на Datalens проверяет сотрудников кто может быстро приспособиться к новым реалиям внутри компании. Не хочешь меняться, а работать только с одной привычной технологией - рано или поздно ты станешь не нужен.
2️⃣ Принимать ответственность в своей зоне работы
Ответственность за качество выполнения задач, ответственность за согласованные с тобой сроки, ответственность за своих сотрудников/проект/конкретный отчет... В случае возникновения рисков срыва сроков, невыполнения задачи, косяка сотрудника - не замалчиваешь, а подсвечиваешь риск и стараешься его минимизировать возможными способами.
3️⃣ Уметь ошибаться
Накосячил - принял этот факт - порефлексировал и сделал разбор ошибок - сделал выводы. Плохой сотрудник не тот кто ошибается, а тот кто делает одну и ту же ошибку повторно, не сделав из этого никаких выводов.
4️⃣ Иметь хорошие soft-навыки и эмоциональный интеллект
Компания не будет терпеть токсичных, не умеющих работать в обществе сотрудников, это разрушает и демотивирует коллег вокруг. У нас был такой кейс на стажировке - парень был технически сильный, но были неоднократные кейсы токсичности с коллегами. Пришлось попрощаться со стажером в первые недели стажировки.
У всех бывает плохое настроение или можно попросту вспылить в моменте. Это норм, но стоит извиниться после таких ярких ситуаций и стараться все же не повторять их в будущем.
5️⃣ Быть проактивным
Менеджеры очень любят это качество. Кричать громче всех о своих достижениях, рассказывать на широкий круг о результатах своей работы. Также ценится, когда сотрудник не только решает поставленные задачи, но и предлагает свои идеи и мысли по улучшению проекта/продукта и решений, участвовать в постановке целей ил планировании. Ну здесь понятно - чем больше делаешь за те же деньги, тем ты ценней. Надо понять что повышения в компаниях работают по принципу:
1) расширил свою зону ответственности, стал выполнять боле сложные проекты
2) если справляешься, то через время (полгода или год, в зависимости от компании) получил повышение
Многие ожидают что:
1) сначала получил повышение
2) после этого ты готов брать на себя больше, ведь за это уже платят
Увы, но работает не так
6️⃣ Иметь сильную техническую компетенцию
Имея все пункты выше, но при этом быть слабым специалистом технически - увы, но ценность как исполнителя твоя будет не велика. В оценку сотрудников всегда закладываются технические компетенции его роли. Поэтому нужно иметь твердые компетенции в любом случае, чтобы справляться со своими прямыми обязанностями в работе.
❤️ если пост был полезен тебе
Считаете, что застряли на месте в компании и не понимаете как расти дальше? Хотите, но боитесь попросить повышение? Боитесь стать ненужным сотрудником, которого вот-вот могут уволить?
Расскажу со своей стороны какого сотрудника хотят видеть у себя компании, кого ценят и готовы удерживать у себя, потому что вы слишком ценны и не заменимы.
Должно быть так:
Не знаю сейчас, но это нужно для работы - значит изучу
Мир технологий очень гибок, даже банальная смена инструмента с Postgres на Clickhouse или миграция с Power BI на Datalens проверяет сотрудников кто может быстро приспособиться к новым реалиям внутри компании. Не хочешь меняться, а работать только с одной привычной технологией - рано или поздно ты станешь не нужен.
Ответственность за качество выполнения задач, ответственность за согласованные с тобой сроки, ответственность за своих сотрудников/проект/конкретный отчет... В случае возникновения рисков срыва сроков, невыполнения задачи, косяка сотрудника - не замалчиваешь, а подсвечиваешь риск и стараешься его минимизировать возможными способами.
Накосячил - принял этот факт - порефлексировал и сделал разбор ошибок - сделал выводы. Плохой сотрудник не тот кто ошибается, а тот кто делает одну и ту же ошибку повторно, не сделав из этого никаких выводов.
Компания не будет терпеть токсичных, не умеющих работать в обществе сотрудников, это разрушает и демотивирует коллег вокруг. У нас был такой кейс на стажировке - парень был технически сильный, но были неоднократные кейсы токсичности с коллегами. Пришлось попрощаться со стажером в первые недели стажировки.
У всех бывает плохое настроение или можно попросту вспылить в моменте. Это норм, но стоит извиниться после таких ярких ситуаций и стараться все же не повторять их в будущем.
Менеджеры очень любят это качество. Кричать громче всех о своих достижениях, рассказывать на широкий круг о результатах своей работы. Также ценится, когда сотрудник не только решает поставленные задачи, но и предлагает свои идеи и мысли по улучшению проекта/продукта и решений, участвовать в постановке целей ил планировании. Ну здесь понятно - чем больше делаешь за те же деньги, тем ты ценней. Надо понять что повышения в компаниях работают по принципу:
1) расширил свою зону ответственности, стал выполнять боле сложные проекты
2) если справляешься, то через время (полгода или год, в зависимости от компании) получил повышение
Многие ожидают что:
1) сначала получил повышение
2) после этого ты готов брать на себя больше, ведь за это уже платят
Увы, но работает не так
Имея все пункты выше, но при этом быть слабым специалистом технически - увы, но ценность как исполнителя твоя будет не велика. В оценку сотрудников всегда закладываются технические компетенции его роли. Поэтому нужно иметь твердые компетенции в любом случае, чтобы справляться со своими прямыми обязанностями в работе.
❤️ если пост был полезен тебе
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥2
REST, SOAP, RPC: вроде все про одно, но работают по-разному.
Разложим по порядку
Не стандарт и не протокол, а просто набор принципов взаимодействия.
Каждый метод делает своё:
▫️ GET👉 получить данные▫️ POST👉 создать▫️ PUT👉 обновить▫️ DELETE👉 удалить
GET /user/42
POST /order/create
Он использует XML и жёсткую структуру.
К каждому сервису прилагается файл WSDL - в нём расписаны методы, параметры и типы данных.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUserInfo>
<UserId>42</UserId>
</GetUserInfo>
</soap:Body>
</soap:Envelope>
Он чаще встречается в гос- и банковских системах: там, где важна стабильность и проверка форматов, а не скорость.
Без URL-структуры, только метод и параметры:
{
"jsonrpc": "2.0",
"method": "user.getInfo",
"params": { "userId": 42 },
"id": 1
}Используется там, где сервисов много и REST уже не так удобен.
(но об этом в другой раз)
В следующем посте разберём REST подробнее:
какие методы идемпотентные, когда можно использовать POST вместо GET и чем отличаются PUT и PATCH.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2👏2
REST кажется простым, пока не начинается собес...
Там уже не спрашивают, что делает GET, а копают глубже.
Про
Метод называют идемпотентным, если повторный вызов даёт тот же результат, что и первый.
➰ GET /user/42 - вернёт того же пользователя.➰ DELETE /user/42 - удалит один раз, второй вызов ничего не изменит.➰ PUT /user/42 - тоже идемпотентен, если передать те же данные.➕ POST /user/create - нет: при повторе создаст новую запись.
Да, если система умеет узнавать дубли, например, по requestId. (id самого запроса)
Второй такой же запрос просто проигнорируется.
Но это уже логика приложения, а не свойство метода.
➕ По RESTful принципам - нельзя.➖ В реальной жизни - можно, если есть веская причина.
Например, когда нужно передать тело запроса (сложный фильтр или большой список параметров), то выбирают POST, даже если данные просто читаются.
GET не поддерживает тело, а длина адресной строки ограничена.
Да, можно, если запрос большой или нужно скрыть данные. Главное понимать, зачем.
➡️ 200 - всё хорошо.➡️ 201 - создан новый ресурс.➡️ 204 - успех, но без тела➡️ 400 - ошибка в запросе.➡️ 401 - не авторизован.➡️ 403 - доступ запрещён.➡️ 404 - не найдено.➡️ 500 - ошибка на сервере.
Простой ответ:
➡️ 401 - пользователь не авторизован.➡️ 403 - авторизован, но прав нет.
Если передать в PUT половину данных, то сервер может “стереть” остальное.
А вот PATCH аккуратнее, он просто дополняет.
Не стоит использовать GET для передачи конфиденциальных данных.
Все параметры в этом случае видны в URL, могут попасть в логи или историю браузера.
Для таких случаев лучше подходит POST, потому что его тело не отображается в адресной строке.
REST-сервисы живут годами.
Методы меняются, поля добавляются, что-то устаревает.
И если просто взять и “обновить под новую логику”
Чтобы этого не случилось, вводят версии API.
➡️ /api/v1/user/get➡️ /api/v2/user/get
Версия v1 продолжает работать как раньше,
а v2 добавляет новые поля или правила.
Если ты описываешь API в документации, всегда указывай, какая версия актуальна и что изменилось.
И добавляй мини-блок “История изменений” - он экономит часы на переписке.
Почему PUT идемпотентен, если он меняет данные?
Потому что при втором вызове состояние уже не меняется, результат будет тот же.
В целом REST несложная штука.
Главное понимать, как она устроена и какие последствия у каждого запроса)
Сохрани, пригодится!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Хорошее описание API экономит часы работы!
Если спека написана понятно, разработчик реализует метод без уточнений, а тестировщик проверит всё без лишних вопросов
Пара предложений и человек уже понимает, что делает этот API, даже не глядя в JSON.
Эта информация всегда нужна первой
Без этого даже лучший пример не спасёт...
После небольшого описания концепта начинается структура.
Пиши одинаково для всех методов, чтобы глаза не спотыкались, вот пример
Метод:
POST /user/createНазначение: создаёт пользователя
Входные данные: email, password
Ответ: статус и id пользователя
Пример запроса:
{
"email": "user@mail.ru",
"password": "1234"
}Пример ответа:
{
"status": "ok",
"userId": 42
}Не обязательно составлять целый справочник, достаточно короткого списка
400 403 404 500 Если методы связаны между собой, то добавь один абзац об этом
Сначала /auth/login, потом /user/getInfo.
Если первый вызов неуспешен👉 возвращаем 401, дальше не идём.
Так тестировщикам проще понимать, что и за чем идёт.
Если API развивается, всегда указывай версию: /api/v2/user/get.
А под методами добавь блок “Что изменилось”:
Через месяц это сэкономит тебе больше времени, чем кажется)
Если держать эти советы перед глазами, то спека будет читаться как хороший сценарий:
понятно, кто что делает, какие данные передаются и где могут быть ошибки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Иногда одна система хочет отправить данные другой, но та в этот момент занята, упала или просто отвечает слишком долго.
Если связывать их напрямую, то всё повиснет.
Поэтому между ними ставят посредника
Он принимает сообщение, бережно складывает его в очередь и передаёт дальше, когда получатель готов.
Главное - письмо не потеряется.
➡️ Продюсер (отправитель) публикует сообщение.➡️ Брокер сохраняет его в очередь.➡️ Консьюмер (получатель) забирает, когда готов обработать.❕ Если получателей несколько - брокер может отправить сообщение всем сразу.
☑️ Чтобы данные не терялись, даже если один сервис “лежит”☑️ Чтобы разгрузить системы и не заставлять их ждать друг друга☑️ Чтобы можно было обрабатывать события асинхронно, в фоне.
☑️ Интернет-магазин получил заказ.➡️ Система заказов отправляет сообщение в очередь: “новый заказ создан”.➡️ Дальше его подхватывают другие сервисы: склад резервирует товар, бухгалтерия создаёт документ, доставка строит маршрут.💾 Если один из них временно недоступен - ничего страшного.
Брокер дождётся и передаст сообщение, как только тот вернётся.
RabbitMQ➡️ простой и надёжный, с очередями и подтверждениями доставки.
Kafka➡️ для больших потоков событий и быстрой обработки.
ActiveMQ, Redis Streams➡️ встречаются реже, но делают то же самое.
✔️ Кто отправитель, а кто получатель✔️ Какой формат сообщения (JSON, XML, просто текст)✔️ Что делает система, если брокер недоступен✔️ Как обрабатываются ошибки и повторы.
Сохрани этот пост, пригодится, когда дойдёшь до Kafka или RabbitMQ.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
📡 Kafka: когда сообщений слишком много.
В прошлом посте мы разобрались, зачем вообще нужны брокеры сообщений.
Теперь пойдём глубже👉 поговорим про одну из самых известных систем: ⏭ Kafka⏮
Она не просто передаёт данные, а умеет держать огромные потоки событий, не теряя ни байта информации.
📎 Что такое Kafka?
📎 Как она устроена?
💡 Пример:
📎 Чем Kafka отличается от обычной очереди?
📎 Когда она нужна?
Kafka особенно полезна там, где всё крутится вокруг данных: маркетплейсы, платёжные сервисы, аналитика, телеметрия.
📎 Что важно знать аналитику или "от меня что требуется?" 😐
‼️ какие топики существуют и какие события туда пишутся
‼️ кто продюсер (отправляет), а кто консьюмер (читает)
‼️ какие гарантии нужны: “хотя бы один раз” или “ровно один раз”
‼️ как долго хранятся сообщения (retention).
Kafka выдерживает огромные нагрузки и хранит историю, как хронику системы.
💬 Если RabbitMQ - это надёжная почта, то Kafka - это радиоэфир: все слушают, но каждый выбирает, с какого момента включиться.
В прошлом посте мы разобрались, зачем вообще нужны брокеры сообщений.
Теперь пойдём глубже
Она не просто передаёт данные, а умеет держать огромные потоки событий, не теряя ни байта информации.
Это распределённая система для обмена потоками сообщений.
Её задача не просто доставлять данные, а удерживать поток.
Можно перечитывать историю, возвращаться назад или подключаться к нужному моменту, как к записи эфира.
Сообщения не складываются в “очередь”, а записываются в топики как в журнал событий.
Внутри топика данные делятся на партиции, чтобы можно было обрабатывать тысячи сообщений одновременно.
👉 сервис заказов пишет событие “создан заказ” в топик "orders"👉 сервис аналитики слушает топик "order" и считает статистику.👉 сервис уведомлений тоже подписан на топик "orders", чтобы отправить письмо клиенту.
В итоге каждый "читатель" работает независимо, не мешая другим.
В RabbitMQ сообщение исчезает после обработки.
В Kafka оно остаётся.
Каждый потребитель хранит “указатель”, где он остановился, и может перечитать с нужного места.
Это удобно, когда нужно анализировать историю или восстановить данные после сбоя.
✅ Когда поток событий идёт постоянно: логи, клики, заказы, метрики.✅ Когда важно не потерять ни одного сообщения.✅ Когда системы обрабатывают данные параллельно, а не по очереди.
Kafka особенно полезна там, где всё крутится вокруг данных: маркетплейсы, платёжные сервисы, аналитика, телеметрия.
Kafka выдерживает огромные нагрузки и хранит историю, как хронику системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥1
В прошлом посте мы говорили про Kafka и что она умеет.
Но не всем нужна такая махина, иногда системам просто нужно обменяться сообщениями.
Вот тут вступает
Но если получатель временно недоступен, сообщение теряется...
RabbitMQ решает эту проблему, он:
Он не бросает посылку у двери, а хранит её у себя, пока получатель не получит и не откроет.
Если не получилось доставить
Он решает, в какую очередь положить сообщение и кто его получит.
Иногда сообщение нужно передать конкретному сервису
А иногда
А если сообщений много и они разного типа, подключается topic exchange, который умеет фильтровать их по шаблонам вроде order.created или order.cancelled.
Самое приятное
Когда получатель забрал сообщение и обработал его, он отправляет брокеру подтверждение
Если подтверждения нет, сообщение возвращается обратно.
Ничего не пропадает, просто откладывается “на потом”.
Можно даже настроить, чтобы несколько сервисов забирали сообщения параллельно
🐰RabbitMQ не пытается быть универсальным решением.
Он просто делает своё дело: хранит, доставляет и повторяет, если нужно.
Поэтому его особенно любят там, где важна стабильность и предсказуемость.
🐰RabbitMQ 👉 это та самая система, которая не суетится)
Она не ломается от нагрузки и не теряет данные, просто доставляет точно и вовремя.
💬 Если Kafka 👉 это радио, где всё звучит одновременно,
то RabbitMQ 👉 это почтовое отделение: письма лежат в ящике и ждут, пока их аккуратно разберут.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3👍2
Мы уже поговорили про брокеры: Kafka держит потоки, RabbitMQ передаёт сообщения надёжно.
Но представь, что систем становится десятки.
Каждая связана с каждой и теперь у тебя паутина, где одно изменение может задеть половину проекта.
Вот тут и пригождается сервисная шина, когда брокера уже мало.
Брокер - это просто транспорт: отправил➡️ доставил.
Но он не думает кому это нужно, в каком порядке и что делать дальше.
Если систем много, без координации начинается путаница:
каждая пишет другим напрямую, логику обмена никто не контролирует.
Шина решает эту проблему: она становится центром, через который всё проходит.
В общем, это не просто очередь, а целая инфраструктура.
Она знает, кто отправитель, кто получатель, и как трансформировать данные между ними.
Сервис отправляет сообщение “новый заказ создан”➡️ шина решает, кому это важно: складу, бухгалтерии, CRM.
Если нужно, меняет формат данных и отправляет каждому в его виде.
Можно сказать, что шина - это брокер с мозгами)
Допустим, у тебя десяток систем: заказы, платежи, уведомления, аналитика.🫡 Без шины между ними десятки точек связи, и любое изменение превращается в квест.🙏 С шиной у каждой системы одно соединение👉 к шине.
Они не знают друг о друге, но всё работает.
1️⃣ Брокер просто хранит и доставляет сообщения.2️⃣ Шина управляет маршрутизацией, преобразованием данных и контролем потоков.
У шины есть правила, мониторинг, логирование и даже возможность “приостановить” интеграцию.
↗️ Когда интеграций десятки, и они начали мешать друг другу.↗️ Когда нужно централизовать маршрутизацию и логику обработки.↗️ Когда хочется единый контроль: видеть все обмены, ошибки и задержки.
Для аналитика шина
Ты видишь, что с чем связано, какие форматы проходят, где упало и почему.
И это уже не просто обмен данными, а полноценная архитектура!
Шина не всегда обязательна, если у тебя пара систем, то хватит и RabbitMQ.
Но когда связей становится слишком много, без шины проект превращается в клубок...
И когда данных становится слишком много, порядок - это тоже интеграция)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3👏3
Каждая система что-то делает, реагирует на события других, запускает свои процессы.
И тут важно не просто знать “кто с кем общается”, а кто управляет этим взаимодействием.
Хореография
Представь, что системы обмениваются событиями напрямую.💬 Одна система отправляет сообщение “заказ создан”, и дальше никто ни с кем не согласовывает, остальные просто реагируют.💬 Склад резервирует товар, бухгалтерия создаёт счёт, CRM обновляет статус клиента.
Никакого центрального координатора нет.
Такой подход прост и гибок: добавляешь новый сервис и он просто подписывается на нужные события.🙂 Но и минусы очевидны: если в цепочке что-то пошло не так, найти причину сложнее, потому что событий много, логики централизованной нет.
Оркестрация
Здесь появляется отдельный компонент - оркестратор.
Он знает последовательность шагов и управляет ею
✅ Создать заказ✅ Проверить оплату✅ Подтвердить склад✅ Отправить уведомление
Если что-то падает👉 оркестратор понимает, где именно, и решает, откатить ли процесс или повторить попытку.
Это похоже на режиссёра, который координирует актёров: каждый играет свою роль, но по единому сценарию)
На практике часто комбинируют: часть процессов живёт “по событиям”, а ключевые шаги управляются оркестратором.
Оркестратор не мешает работать, он просто помогает всем действовать синхронно.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥4👍3
WebSocket, Webhook, Callback и Fallback
Теперь пора поговорить о том, как они дают ответ.
один пишет, второй читает, третий “я занят, перезвоню позже”, а четвёртый вообще молчит до последнего.
Другими словами, WebSocket
Не “отправил запрос
"Я здесь, ты здесь, давай держать линию открытой"
➡️ клиент подключился➡️ сервер держит соединение открытым;➡️ как только что-то изменилось - клиент узнаёт мгновенно.
Это идеальный вариант для чатов, торгов, трекинга статуса “в реальном времени”.
Всё шустро, без опросов и лишних телодвижений.
То есть Webhook
"Я позвоню сама, не жди меня у порога"
Платёж прошёл➡️ платёжка прислала тебе уведомление➡️ ты обновил статус заказа.
Никаких постоянных опросов, никакого “а что там у них?”. Webhook сам всё расскажет.
Один сервис выполняет долгий процесс, а потом вызывает твой обратный метод:
"Всё, закончил, можешь продолжать работу".
то callback
И вот самый жизненный механизм. Fallback
Когда основной сервис внезапно “ушёл покурить”, а пользователю нужно показать хоть что-то.😖
🆖 Что делают:
➡️ возвращают данные из кэша
➡️ подставляют упрощённый ответ
➡️ повторяют попытку через время
➡️ идут по запасному маршруту
🆖 Типичная ситуация:
Сервис профиля лежит ➡️ возвращаем последний сохранённый профиль ➡️ обновляем позже.
Пользователю хорошо, системе тоже не больно)
🤏Как легко отличать всё это?
➡️ WebSocket - постоянное соединение.
Почти как телеграм чат: написал ➡️ сразу прилетело.
➡️ Webhook - уведомление от внешней системы.
Как доставка: "Ваша посылка прибыла в пункт выдачи".
➡️ Callback - уведомление от своей же системы.
Как коллега: "Я всё сделал, смотри".
➡️ Fallback - запасной сценарий.
Как когда интернет пропал, а видео всё равно доигрывает из буфера - примерно та же логика.
💬Если раньше эти четыре слова казались чем-то туманным, то теперь ты точно можешь объяснить их человеку без диаграмм и UML.
А значит ➡️ пост справился со своей миссией 😎.💬
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👍1
🧩 Интеграция глазами аналитика
😏 За этот месяц мы разобрали многое:
REST и SOAP, брокеры, Kafka, RabbitMQ, шину, оркестрацию.
Снаружи всё это кажется сложным, но внутри - лишь логика и здравый смысл)
❣️ Для аналитика интеграция - это знание, как системы понимают друг друга и не теряют смысл в пути.
Когда ты работаешь с интеграцией, важно смотреть шире, чем на запросы и поля.
👉 Спрашивать себя:
Интеграция - это всегда история о надёжности и она не должна зависеть от удачи.
‼️ Поэтому хороший аналитик видит не только, что передаётся, но и почему именно так.‼️
Он умеет объяснить, зачем нужен брокер, почему REST подходит здесь, а SOAP - там.
👉 Иногда интеграция выглядит просто: “отправили - получили”.
🔻 Но на деле за этим стоит десяток решений, проверок и точек синхронизации.
И именно аналитик держит этот контур в порядке.
💬 Сохрани эти посты, перечитай через пару месяцев и посмотри, как изменится твой взгляд на интеграции)
REST и SOAP, брокеры, Kafka, RabbitMQ, шину, оркестрацию.
Снаружи всё это кажется сложным, но внутри - лишь логика и здравый смысл)
Когда ты работаешь с интеграцией, важно смотреть шире, чем на запросы и поля.
❓ кто инициирует процесс❓ куда идут данные и зачем❓ что будет, если один из участников “молчит”❓ как понять, что всё сработало правильно
Интеграция - это всегда история о надёжности и она не должна зависеть от удачи.
Он умеет объяснить, зачем нужен брокер, почему REST подходит здесь, а SOAP - там.
И именно аналитик держит этот контур в порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
Так, с интеграцией вроде разобрались.
Теперь перейдём к тому, о чём почти не пишут, но что отличает аналитика, который “делает задачи”, от аналитика, который рулит проектом - это умение видеть систему целиком.
Когда ты только начинаешь работать аналитиком, кажется, что главное - это разобраться в задаче и описать её так, чтобы разработчики всё поняли.🙂
Но со временем ловишь себя на мысли:
можно идеально расписать маленький кусочек, но если не понимаешь, где он живёт, то результат будет не всегда удачным...😔
Тогда и приходит
Система - это просто набор вещей, которые связаны между собой: сервисы, роли, данные, процессы, события.
Каждый элемент что-то делает не просто так, а потому что на него что-то влияет и он влияет на других.
Иногда система огромная (торговая площадка), а иногда маленькая (процесс восстановления пароля)
Если ты работаешь только в рамках своей задачи, легко сделать что-то логичное локально, но странное глобально...
Ты добавляешь поле в профиль. Локально - всё супер.
А потом выясняется, что это поле участвует в регистрации, выгружается в отчёт, влияет на фильтр в админке и вообще зачем-то подтягивается в интеграцию...😒
Системное мышление как раз помогает этого избежать.
➡️ какие процессы затронет моя задача➡️ что сломается, если изменить это поле➡️ кто потребляет эти данные➡️ какой сервис будет страдать первым
Это когда перед тем, как писать задачу, ты автоматически думаешь:
Меньше уточнений, меньше переделок, меньше “мы это не учли”.
Это часть одной большой конструкции.
И чем раньше ты увидишь конструкцию, тем спокойнее у тебя будет жизнь (и у команды тоже).
📣 Если хочешь прокачать этот навык на реальных задачах — на курсе мы как раз работаем с настоящими проектами.
Системное мышление там появляется не из теории, а из практики, приходи!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥4👍3
Мало кто думает о том, что хорошие вопросы в работе аналитика экономят времени больше, чем любое шикарное ТЗ.
Если честно, этот вопрос выбивает из контекста хуже любого звонка.
Человек не знает, на что он соглашается, поэтому лучше сразу написать, что тебе нужно:
"Мне нужно уточнить один момент по задаче с интеграцией. Написала ниже, посмотри, пожалуйста"
Нет ничего хуже, чем вопрос, который можно было решить за 10 секунд поиском.
Когда же ты даёшь контекст, человек видит, что разговор будет предметный:
"Я проверила метод getUser он отдаёт статус 'false'. Хочу понять, это всегда так или есть исключения?"
Когда ты пишешь длинный текст с кучей вопросов, кто-то обязательно что-то пропустит.
Не потому что игнорирует, а потому что это просто тяжело читать в мессенджере.
"Уточню три момента, они связаны между собой:
- кто формирует дату?
- обновляется ли она?
- зависит ли от неё другой процесс?"
это делает переписку чище и добавляет структуры.
Вот это
"Почему метод не работает?"
А вот это
"Метод возвращает ошибку на таких данных, вот пример. Я подозреваю, что проблема может быть в поле userId. Правильно думаю?"
Во втором варианте человек понимает, куда смотреть и как помочь.
Не нужно комплиментов, смайликов и "сорри, что отвлекаю".
Достаточно просто быть аккуратным в формулировках, задавать контекст и люди начинают отвечать охотнее, даже те, кто обычно пишет “давай завтра”))
Уметь правильно задавать вопросы - это не врождённый талант, а привычка думать на шаг вперёд: что человек увидит, глядя на мой текст, и сможет ли он быстро помочь?
И если иногда кажется, что ты "слишком подробно" пишешь - поверь, это лучше, чем полдня тянуть из человека ответ по слову.
А если кто-то отвечает быстро и по делу - значит, ты задал хороший вопрос!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍1😁1