GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
20.7K subscribers
2.21K photos
78 videos
220 files
1.25K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart
Download Telegram
OAuth2_0_Регистрация_аккаунта_через_Войти_через_Mail_ru_GetAnalyst.pdf
1000.8 KB
🔑 "Войти через Госуслуги / Google / Mail ru": пример постановки задачи на OAuth 2.0 интеграцию 🔖

Сегодня одна из самых популярных задач — подключить единый аккаунт для входа во все приложения: “через Госуслуги”, “через Google” и т.д.

Я показываю подход на примере Mail.ru OAuth 2.0, потому что:
✔️ документация на русском (в отличие от Google),
✔️ можно быстро создать тестовое приложение и прогнать сценарий в Postman руками (в отличие от Госуслуг),
✔️ на нём удобно разобрать нюансы, которые потом повторяются и для других провайдеров.


Я подготовила:
👉 шаблон постановки задачи: “Первичная регистрация аккаунта через ‘Войти c
Mail.ru’”.
Это интеграционный Use Case.


На что важно обратить внимание:

◽️ 1) Токен Mail.ru — не “токен вашей системы”
В этом сценарии access_token Mail.ru нужен только, чтобы один раз получить базовые данные профиля и создать пользователя.
Дальше пользователь должен работать на внутренней авторизации FoodDeliveryGA (в примере — Bearer Token на 30 дней).
Внутренняя авторизация может быть тоже OAuth 2.0, а может отличаться, как в примере, и быть более простой.


◽️ 2) Есть внешние методы OAuth и внутренние методы вашей авторизации
В постановке чётко разделены:
+ внешние вызовы (Mail.ru OAuth + REST API),
+ внутренние API FoodDeliveryGA (/auth/mailru/authorize, /auth/mailru/token).


◽️ 3) Flow “через code”, а не “токен сразу на фронт”
Показан безопасный вариант OAuth 2.0:
Frontend получает code, а токены внешнего провайдера получает уже Backend.
Это стандарт для продуктовых решений.

◽️ 4) Декомпозиция задачи важна
В примере только Use Case авторизации, а по факту нужно делать:
+ первичную регистрацию
+ привязку акканта Mail.ru к существующей учетке
+ вход в аккаунт (очередная авторизация)
+ проверка доступа хотя бы раз в 24 часа (что токен не отозвали и не сменили)
+ деавторизация.


📌 Шаблон можно использовать как основу для постановок задач для “Войти через Google / Госуслуги” — меняется провайдер и детали API, но структура постановки задачи остаётся такой же.


Документ точно пригодитя 🔖🤝
Сохраните — это шаблон, который закрывает 80% типовых вопросов по OAuth.


#FoodDeliveryGA_oauth
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
23🔥10👍9🤩2🤣1
🔗 Протокол HTTP и его связь с REST API 🔗

HTTP — это протокол прикладного уровня, используемый для передачи данных между клиентом и сервером в Интернете.


👉 Структура метода HTTP API
(без архитектурного стиля REST)

Запрос:
+ тип метода (GET/POST/PUT/PATCH/DELETE)
+ URL (https://api.test.com/public/v1/products?name=Яблоко&limit=10)
+ заголовки - headers
+ тело запроса (json/xml/html/файл и другие)

Ответ:
+ статус код (HTTP-200 и другие)
+ заголовки - headers
+ тело ответа (json/xml/html/файл и другие)



REST API — это архитектурный стиль, использующий HTTP в качестве протокола передачи данных (или: основанный на протоколе HTTP).


👉 Структура метода REST API = Структуре метода HTTP API
Только REST API методы используют дополнительные рекомендации по тому, как их делать.


Например:
▫️ в REST API используется полный набор методов GET/POST/PUT/PATCH/DELETE, а в HTTP API могут быть все POST 🥲
▫️ в REST API рекомендуется использовать JSON-формат сообщений, а в HTTP API можно делать что угодно.


Всё самое важное про HTTP на картинках к посту ☝️

🔗 Ещё подробнее про связь HTTP и REST API в этой статье.


#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2313👍5
ЭПИЗОД 39:
Всё про WebSocket: что это, где используют и зачем он в архитектуре


WebSocket встречается всё чаще. И понимать его хотя бы на базовом уровне становится важно.

Там, где есть чаты, одновременная работа пользователей и любые обновления в реальном времени, WebSocket API появляется очень быстро 💬

Подробно рассказываем про WebSocket в новом выпуске подкаста GetAnalyst:

🔗 Сайт эпизода с шаблоном задачи на WebSocket API


Эпизод доступен в:

Apple Podcast
Яндекс.Музыка
Telegram
Castbox
Звук
Spotify
RuTube
YouTube
VK Video


Сообщество системных аналитиков GetAnalyst — опыт здесь 📍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥178🔥4
А тут точно надо AI? Показательная история из университета 🤓

Мне кажется, моя учёба по AI в Johns Hopkins University продолжается бесконечно 😅

И она делает меня счастливее, потому что ощущение “как много я не знала” - лучшее!
Но и без "поумничать" у меня судя по всему никуда.


На последнем занятии мы разбирали готовое решение AI чат-бота для интернет-магазина на Python.
Учебное демо - ок… но я-то думаю про реальность.

И поэтому снова начала перестраивать архитектуру решения и рассуждать с преподавателем по поводу изменения кода
на 80% 😃

Почему?
👉 Потому что многие путают внедрение AI и обычную автоматизацию, и пытаются засунуть LLM туда, где достаточно нормально запрограммировать.



📌 Рассказываю к чему докопалась:
1. Есть AI чат-бот для Интернет-магазина.
2. Пользователь пишет:
«Где мой заказ? И когда его доставят?»
3. LLM (большая языковая модель = AI) понимает: вопрос индивидуальный → просит номер заказа.
4. Пользователь присылает номер.


И дальше варианты 👇

1️⃣ Заранее, до начала диалога, загрузить в LLM всю базу заказов (через файл) и искать там

Это было в учебном примере.
Ок, так можно.
Но зачем в LLM вообще вгрузили базу заказов?
Всех-всех пользователей. Там и персональные данные, и чеки, и всё в этом файле.
Ещё и через большой JSON-файл, который явно при каждом новом диалоге (или хотя бы раз в час), надо обновлять.
Зачем вообще заставлять LLM парсить этот JSON?

При таком раскладе ещё и сложные промпты надо писать, чтобы LLM ни в коем случае не выдала данные по чужому заказу и не раскрыла чужие перс данные.

Если уж что-то и подгружать, то только заказы авторизованного пользователя в начале диалога.
Но нет, в учебном примере грузили вообще всё 🥲


2️⃣ Пусть LLM через MCP полезет в базу и достанет данные

Уже лучше.
Есть недавно созданный MCP-протокол, используя который можно подключиться к вашей БД PostgreSQL и забирать из неё нужные данные напрямую.
Это уже лучше, чем работа с JSON-файлом со всеми заказами.
Одна проблема появляется.
Надо защищаться, чтобы у нас не украли БД, обманув LLM через вредоносный промпт (команду к AI).
Про MCP делала небольшое демо тут.


3️⃣ Мы принимаем номер заказа от пользователя и далее вызываем обычный метод системы, который возвращает статус и дату доставки

Как по мне - это лучший вариант.
Простая и привычная автоматизация, которая решает все проблемы защиты перс данных и потенциальных атак, которые могут сделать для LLM.
Тут:
+ и запросы к AI экономим (да-да, запросы по API платные, если не своя LLM, а, например, DeepSeek или OpenAI)
+ и кучу промптов на защиту от кражи перс данных придумывать не надо
+ LLM - про понимание пользователя, вызов метода из кода - про понятное получение данных из БД


Итого 👇
В задаче на AI-чат-бота для интернет-магазина LLM нужна не как “доступ к базе”, а как умный диспетчер:
• распознать команду от пользователя “получить статус доставки” или иную
• запросить у пользователя номер заказа
• аккуратно вызвать нужный метод
• красиво сформулировать ответ пользователю
Остальное - отдайте программистам на автоматизацию.

А “парсить огромный JSON” и писать кучу защитных промптов - это норм как учебный пример, но не как продакшн.


Такая вот история 😃
Надеюсь удалось донести вам чуть больше "подводных камней" про системы с AI.


А вообще я уже много месяцев с урывками выходных и в абсолютном завале со своей учёбой.
Но узнавать и пробовать новое,особенно в AI - 🤍🤍🤍


#AI_for_analysts
142❤‍🔥10🔥7👏6🦄3
Дизайн REST API: открыта запись на практическую программу для СА и БА 🚀

💻 Дизайн REST API
🗓 Старт 17 февраля 2026

🤍 Расширенный формат в феврале 2026:
+ 3 доп. онлайн-практики
+ 9 месяцев доступа к обучению
записи уроков и Confluence-документация по доп. проекту

👉 Узнать подробности и записаться

🎁 Только до 12 февраля:
лучшая цена + обучение "Интеграции 4.0 - продвинутый уровень" в подарок.


В ходе работы учимся проектировать методы REST API с нуля, глядя на требования, архитектуру, БД и дизайн UI/UX системы.

❗️ Это не про интеграции и чтение готовой API-документации,
а про умение проектировать REST API методы с нуля, самостоятельно, и выстраивать стандарты API на любом проекте.

Проект с подвохами и сложностями, на котором “набиваем шишки”, учимся писать с нуля и структурировать API-документацию, осваиваем ключевые инструменты СА 🛠



🎯 В результате обучения вы создаете свой проект API-документации в Postman, OpenAPI (Swagger) и умеете делать работающие REST API методы Backend на заглушках, даже без навыков программирования!

Это самая весомая и “программистская” часть вашего профессионального портфолио 🤩



Есть вопросы?
Пишите @getanalyst или заполняйте анкету предзаписи. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на вопросы! 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1
GetAnalyst_Параметры_в_запросах_REST_API_HTTP.png
2.2 MB
📗 3 вида параметров в HTTP (REST API), где чаще всего путаются аналитики 📗

Мини-гайд про виды параметров HTTP (REST API) запросов, в которых чаще всего косячат новички:


👉 query-parameters — после ? в URL.
фильтры, сортировки, пагинация, поисковые строки, api-key (если так принято).

Формат:
GET /products?name=milk&limit=10&offset=20&order=price,asc

Получить список продуктов с названием "milk", 10 записей, начиная с 20-ой, сортировать по возрастанию цены

Типичные проблемы:
• Отправляют бизнес-данные для создания/изменения в query, вместо тела json.
• Дробят сортировку в несколько параметров, вместо одного аккуратного.
• Добавляют query в POST/PUT без причины.



👉 path-parameters — часть пути (эндпоинта).
Идентификатор конкретного ресурса или вложенного ресурса.

Формат:
GET /products/{productId} → GET /products/3a46b…

Можно внутри пути:
PATCH /products/{productId}/archive


Типичные проблемы:
• Отправляют ?productId=… в query, хотя это сущность, а не фильтр.



👉 body-parameters — тело запроса json.
Сообщение, когда создаём/меняем данные.
Только для POST | PUT | PATCH.
Кроме json могут быть другие форматы.

Формат:
{
"name": "Яблоки Гала",
"shortName": "Гала",
"description": "Сладкие и хрустящие"
}


Типичные проблемы:
• Отправляют огромное количество параметров в query-параметры, которые там не помещаются, и могут быть обрезаны сервером при определенных настройках безопасности.
• Используют body (json) для GET или DELETE, где оно не поддержано.


В гайде:
✔️ название параметра и его определение
✔️ скрины из Postman
✔️ особенности
✔️ примеры


Изучайте, запоминайте и не путайтесь 🤝

#RestApiGA
🔥3815👍10🤩1
📌📚 Подборка материалов по REST API: теория + примеры + выгрузки требований из Confluence ⭐️


Собрала для вас максимально полную коллекцию материалов, которые помогут поэтапно погрузиться в тему проектирования REST API.

Изучать рекомендую последовательно.


🚀 Основы:
🔗 Протокол HTTP - основа REST
🔗 Структура REST API (HTTP) метода в одной картинке
🔗 Как выбирать методы: GET, POST, PUT, PATCH, DELETE
🔗 Правила проектирования URL для запроса
🔗 Всё про JSON в одной картинке - тело (body) для запросов и ответов
🔗 Мини-книга про JSON
🔗 3 вида параметров в HTTP (REST API), где чаще всего путаются аналитики
🔗 В чем отличие REST от RESTful API?
🔗 Как связаны JSON, UI и БД
🔗 Связь БД и дизайна REST API

+ Проект “Система для автосервиса” - видео-обучение:
🔗 Сбор бизнес-требований, погружение в контекст
🔗Определение сущностей и проектирование логической модели БД
🔗REST API с нуля: дизайн методов для работы менеджера с заявками



🤝 Уверенное владение:
🔗 Элементы пагинации (limit, offset, count) в REST API для работы со списками
🔗 Headers - заголовки запросов и ответов
🔗 Аутентификация и авторизация в API
🔗 Проектирование и документирование ошибок в REST API
🔗 REST API - 6 главных принципов



💪
Продвинутый уровень:
🔗 Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)
🔗 OAuth 2.0
🔗 Получение данных через POST в REST API + кэширование
🔗 Версионирование API. Обратная совместимость в API
🔗 Идемпотентность и коммутативность API
🔗 Исследование реальных REST API на соответствие REST: Trello, Todoist



🛠 Инструменты тестирования и документирования:
🔗 Инструменты аналитика для работы с API
🔗 Postman: навык тестирования REST API за вечер
🔗 Тестирование API банка ВТБ - практическое руководство


🟢 Swagger (OpenAPI) - практические руководства
🔗 Проект по онлайн-календарю
Управление мероприятиями:
🔗 часть 1
🔗 часть 2
🔗 часть 3



📑 Примеры требований - выгрузки задач из Confluence
🔗 Шаблон постановки задачи на REST API-метод для Confluence

🔗 Cоздание товара - POST /products
🔗 Создать мероприятие - POST /events
🔗 Редактировать товар - PUT /products/{productId}
🔗 Получить рецепт - GET /recipes/{recipeId}
🔗 Получить список книг - GET /books

🔗 Образец документации в Postman



🤖 AI для REST API
🔗 AI-бот по дизайну REST API методов от GetAnalyst (под VPN)
🔗 Структура промпта



👩‍💻 Собеседования
🔗 Вопросы и ответы по REST API к собеседованию на СА + AI-помощник для подготовки
🔗 Открытая база вопросов и ответов к собеседованиям на СА
🔗 42 API-термина, которые спрашивают СА на собеседовании: чек-лист



Также вы можете найти у нас мини-обучения и продвинутую практическую программу Дизайн REST API для опытных аналитиков.

Делитесь с коллегами, особенно с джунами и мидлами СА, которым надо прокачать навыки работы с Backend/API!


Сохранили? Поддержите ❤️


#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
3101❤‍🔥17🔥13🍾3
[GetAnalyst] Кэширование .pdf
2 MB
🚀 Всё про кэш 🚀

Кэш — двигатель производительности системы.

Именно он спасает нас от медленных ответов и заставляет экраны приложений грузиться быстрее.

Кэш есть в процессорах, браузерах, БД, микросервисах.

Но просто положить данные в кэш недостаточно.
Важно понимать:
+ когда кэшировать,
+ что кэшировать,
+ как обновлять кэш.

С мини-книгой к посту вы сможете быстро разобраться в особенностях работы с кэшем.

🔹 Введение
🔹 Зачем кэшировать
🔹 Стратегии кэширования
🔹 Инвалидация кэша
🔹 Стратегии вытеснения кэша
🔹 Время жизни кэша (TTL)
🔹 Согласованность со временем
🔹 Холодный и горячий кэш
🔹 Standalone кэш

Мало работали с кэшем?
Загружайте мини-книгу и изучайте ключевые термины 📚

#АрхитектураGA #RestApiGA
🔥3311👍4
👩‍💻 КЭШ - ключевые алгоритмы, о которых важно знать 💾

Кэш (cache) — быстрый временный слой хранения результатов вычислений или запросов API (и не только), чтобы при повторном обращении к серверу вернуть ответ не выполняя вычисления и логику запроса заново.


👉 Что хранит:
Уже вычисленные данные и/или их части:
JSON ответа, HTML-код, агрегаты, объекты


👉 Что кэшировать:
▫️Карточки сущностей, справочники - медленно меняющиеся сущности
▫️Списки с параметрами фильтров/пагинации
▫️Агрегаты/отчёты: дорогие запросы
▫️HTTP-404 на короткое время

👉 НЕ кэшировать:
▫️Ответы на изменяющие методы (POST/PUT/PATCH/DELETE)
▫️Секретные/чувствительные данные (no-store)

👉 Где хранится:
Для Frontend:
+ в памяти мобилок или десктопов
+ в памяти браузера
+ иногда в локальных БД

Для Backend:
+ CDN/прокси
+ Специализированные СУБД: Redis / Memcached
+ иногда в самой БД - готовые JSON, чтобы не вычислять


👉 Как искать нужные данные:
По ключу кэша - обычно это хеш нормализованного запроса/параметров


👉 Поведение алгоритмов при работе с кэшем:

Cache Hit:
Если данные по ключу кэша найдены, то вернуть их.
Проверить время жизни кэша, прежде чем возвращать ответ

Cache Miss:
Если кэш не найден или данные в кэше устаревшие, то приложение:
+ должно обратиться к источнику за данными (БД или вн. система)
+ формирует ответ (JSON или др)
+ пишет актуальные данные в кэш

🔖 Общий порядок работы на картинках к посту


👉 Политики вытеснения кэша (автоочистка)
▫️ LRU (Least Recently Used) — удаляем те ключи, к которым давно не обращались
▫️ LFU (Least Frequently Used) — удаляем ключи с наименьшим числом обращений
▫️ TTL (Time To Live) — запись жива фиксированное время, потом протухает
▫️ Size-based — выселение по суммарному объёму (байты), часто вместе с LRU/LFU


👉 Заголовки в REST API (Headers)

В запросах:
Cache-Control
If-None-Match
If-Modified-Since
If-Match
If-Unmodified-Since
Only-If-Cached
Pragma (устар.)

В ответах:
Cache-Control
ETag
Last-Modified
Vary
Expires
Age
Date
Cache-Status
Surrogate-Control


#RestApiGA #АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥26🔥9👍43
Как меня видит ChatGPT? 😀

С последними обновлениями ChatGPT начал потрясающе справляться с задачей генерации изображений.

От генерации людей с 8 пальцами на руке до реально крутых и ожидаемых картинок 😍
И этот прорыв всего за один год!

Если вы активно пользуетесь:
https://chatgpt.com/
или
https://gemini.google.com/

👉 то попробуйте этот промпт:
Create a caricature of me and my job based on everything you know about me

на русском:
Нарисуй меня в виде карикатуры вместе с моей работой. Используй всё, что ты обо мне уже знаешь


👉 Дополнительно потребуется загрузить ваше фото: можно сразу, либо AI вас сам спросит.


Только ChatGPT/Gemini. В других нейросетях пока не достигли такого уровня "вау", а где-то генерация изображений просто не поддерживается.


Как вам результат по мне? Похожа? 😀

Кто активно пользуется ChatGPT - делитесь своими карикатурами)) узнаем как AI видит аналитиков

#AI_for_analysts
🔥3818🥰3🤩3❤‍🔥1
💜🧠 [14-17 февраля] Postman + Insomnia + AI для REST API 🧠🧡

Вроде знаете всё по REST API, но на практике не хватает глубокого понимания, уверенности в знаниях и инструментов?

👉 Тогда наш открытый урок станет ценной находкой для вас!

🔗 Зарегистрироваться


Разберём 3 ключевых инструмента СА, чтобы структурировать ваши знания REST API + сделать работу быстрее и увереннее!

👉 План:
1. База по REST API на примерах
2. Практика в Postman
3. Практика в Insomnia
4. Настройка AI-ассистента для проектирования REST API

👉 Занятие актуально, если:
переходите в СА и не хватает технических навыков
хотите получить опыт работы с REST API на практике
готовитесь к собеседованию на Middle+/Senior СА
хотите освоить новые инструменты, чтобы ускорить свою работу



💜 Postman, Insomnia и AI:
🔥 погружение в REST API на реальных примерах


🗓 Доступ: 14-17 февраля [сб-вт]
🕘 Время на обучение: ~3.5 часа

🔗 Зарегистрироваться



Планируйте время и получайте новый уникальный опыт! 💜🧠


—————————————————
👩‍🎓 Открытый урок проводится в качестве вводного занятия к практической программе Дизайн REST API.
Please open Telegram to view this post
VIEW IN TELEGRAM
18😍4❤‍🔥2🥰1🦄1