GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
19.6K subscribers
2.09K photos
75 videos
207 files
1.19K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart

РКН №5013005196
Download Telegram
💥 Разбор спорных вопросов по REST API с проектов и собеседований: исследуем Trello и Todoist 💥

Как понять, что мы проектируем REST API правильно? Никак. Смотреть на публичную API‑документацию крупных систем, диссертацию Роя Филдинга, или на то, что уже есть в проекте. И исходя из этого принимать решения о том, как будут выглядеть новые REST API методы.

В этой статье я хочу представить результаты исследований REST API сервисов управления задачами Trello и Todoist, чтобы показать, какие решения являются хорошими стандартами проектирования, а какие нет, но их всё равно применяют на практике.


👉 Решенные вопросы с обоснованием ответов:

1. Какой HTTP-код ответа на метод POST: 200 или 201?

2. Какой метод лучше использовать для редактирования данных: POST, PUT или PATCH?

3. Как правильно строить структуру URL запросов (эндпоинтов)?

4. Как правильно именовать эндпоинты — ед. число или мн. число (/task или /tasks)?

5. Как строить эндпоинт и body в REST API методе, если нам нужно создать задачу, и она должна быть создана внутри проекта?

6. Что вернуть в ответ на запрос списка, если ничего не найдено — пустой массив или HTTP-404?

7. Какой код вернуть в ответ на запрос DELETE?

8. Может ли быть у DELETE тело запроса?

9. Чем отличается REST от RESTful API?


🔗 Ссылка на статью


На примерах из этой статьи можно отстаивать свою правоту на собеседованиях и для команды, при проектировании методов REST API 💪

#RestApiGA #АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍134
GetAnalyst_Микросервисы_5_способов_определения_BookingGA.pdf
5.1 MB
⚡️ Как выделять микросервисы? ⚡️

1️⃣ По группам функций
2️⃣ По доменам (Domain-driven Design, DDD)
3️⃣ По данным
4️⃣ По пользовательским сценариям

5️⃣ По уровню нагрузки

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

А подробнее и с примерами рассказала о них в мини-книге к посту 📚

#АрхитектураGA #BookingGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥205👍5
🧐 Как системный аналитик влияет на проектирование архитектуры 🧐

Проектирование архитектуры систем вместе с разработчиками и архитекторами — одна из больших задач системного аналитика.

В этом процессе аналитик становится мостиком между бизнес-процессами и техническими решениями. Понимать надо глубоко и то, и другое.

Собрала для вас статью со списком основных задач системного аналитика, связанных с проектированием архитектуры:

1. Исследования и анализ
2. Выбор подхода к проектированию архитектуры
3. Формирование концептуальной схемы архитектуры
4. Оценка влияния нефункциональных требований

🔗 Ссылка на статью

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🍾43
🔥 13 ошибок в использовании BPMN: разбор на примере задачи 🔥

В этом эпизоде подкаста мы разбираем 13 типичных ошибок при использовании нотации BPMN на примере задачи, которую может получить на собеседовании Системный или Бизнес-аналитик.

🔗 Презентация и полезные ссылки

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

Эпизод будет полезен как начинающим, так и опытным аналитикам, стремящимся улучшить свои навыки в создании BPMN-диаграмм для описания бизнес-процессов.

Видео эпизода доступно в:
RuTube
YouTube
VK Video

Аудио-эпизод доступен в:
Apple Podcast
Яндекс.Музыка
Telegram
Castbox
Spotify

Подписывайтесь на GetAnalyst, чтобы получать новые знания в системном анализе каждый день 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥166👍3😁1
Это огромное сообщение я запомню на всю жизнь... Такого развернутого текста с обратной связью я правда никогда не получала ❤️

Перечитывала несколько раз. Улыбалась))


Моя миссия = миссия GetAnalyst:
Я хочу делиться своим практическим опытом, чтобы создавать лучших специалистов в системном анализе, которых я хочу нанимать.

Для этого я делюсь своими знаниями с вами, веду онлайн-занятия и общаюсь со студентами.

И если получается объяснять так, что и новичку понятно, и опытному специалисту не скучно, значит, всё идёт по плану 🙌

Баланс между глубиной, деталями и доступностью важен.
И я стараюсь держать его.
Чтобы ваши результаты обучения вы уверенно использовали в работе.
Чтобы вы не слушали, а работали на обучении, были вовлечены и получали опыт.


Поблагодарила Валентину, когда получила эту ценнейшую обратную связь.
И еще раз хочу сказать ей большое спасибо ❤️

#студентыGetAnalyst
❤‍🔥2217👍9🔥3😁3
🚀 Открытый урок по Архитектуре на этой неделе [1-3 марта] 🚀

Сегодня системным аналитикам важно не только описывать сценарии работы системы, но и глубоко понимать техническую сторону проектирования: API, интеграции, БД.

А если вы хотите расти в профессии и участвовать в сложных, высоконагруженных проектах, понимание архитектуры становится не просто преимуществом, а необходимостью.


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

💎 Проектирование архитектуры: от монолита к микросервисам
🗓 Доступ с 1 по 3 марта (сб-пн)
🔗 Зарегистрироваться

План:
1. Роль системного аналитика в проектировании архитектуры
2. Погружение в проект
3. Проектирование монолита
4. Переход к сервисной (SOA) и микросервисной (MSA) архитектуре
5. Проблемы при делении монолита на микросервисы
6. Базовые знания аналитика для работы с архитектурой


Навыки, знания и примеры, которые вы изучите во время занятия, дадут понимание в вопросах проектирования архитектуры, а также повысят вашу уверенность в общении с разработчиками.

Регистрируйтесь, чтобы получить доступ к этому обучению!
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰11👍7❤‍🔥6🔥53
5_Архитектура_С4_Container_BookingGA_c_комментариями.png
733.3 KB
🔵 C4 / Container - разбор на примере для монолитной архитектуры 🔵

Уровень Container в нотации C4 детализирует систему, показывая её внутреннюю структуру на уровне крупных компонент – контейнеров.

Уровень отражает:
+ какие приложения и сервисы её формируют – независимые кодовые базы,
+ как они взаимодействуют между собой, с пользователями и внешними системами,
+ как организовано хранение данных в системе.


👉 Что нужно показывать?
🔹 Пользователей и внешние системы – переносим с C4/Context.
🔹 Контейнеры – основные приложения и сервисы системы (например, веб-приложение, мобильное приложение, Backend).
🔹 БД и Файловые Хранилища (ФХ) – места хранения данных.
🔹 Брокеры – для организации асинхронного взаимодействия.
🔹 Связи – какие потоки данных существуют, протоколы (например, мобильное приложение вызывает API Backend, Backend делает SQL-запросы в базу данных).
🔹 Технологии – указываем ключевые технологии, если это полезно для понимания и они известны на текущем этапе разработки (например, Backend на Spring Boot, Frontend на React, база данных PostgreSQL).


👉 Что важно знать?
✔️ На этом уровне важно понимать какая архитектура в проекте - монолитная, сервисная (SOA) или микросервисная (MSA).
✔️ Этот уровень помогает увидеть ключевые элементы системы, но без детализации кода. То, что внутри каждой кодовой базы, мы будем показывать уже на следующих уровнях: C4 / Component и C4 / Code.
✔️ C4 / Container не связан с инфраструктурой и Docker-контейнерами, что подтверждается автором нотации.
✔️ Глядя на C4 / Container проще описывать алгоритмы и рисовать UML Sequence для интеграций.


👉 Кому полезен?
✔️ Разработчикам и архитекторам - понять, из каких сервисов состоит система, и базовые принципы её проектирования.
✔️ Аналитикам и бизнесу - наглядно видеть ключевые приложения системы и движение данных между ними.


Примеры С4/Context и C4/Container для системы бронирования жилья #BookingGA прикреплены к посту:
пример для монолитной архитектуры
есть схемы комментариями и чистовые


#АрхитектураGA
👍16🔥83❤‍🔥1
Одна из ступеней профессионального роста системного аналитика - работа в тесном сотрудничестве с архитекторами на проектах с сервисной или микросервисной архитектурой.

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

💥 Проектирование архитектуры
🗓 Старт: 4 марта 2025
👉
Подробности о программе и заявка на участие

🎁 Сегодня последний день, когда открыта запись на самых выгодных условиях:
спец. цена + дополнительное обучение по REST API в подарок

По всем вопросам пишите @getanalyst, info@getanalyst.ru или оставляйте заявку через сайт. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на ваши вопросы 🤝
👍62
⚡️ Подборка микросервисов под проект #BookingGA: практика выделения микросервисов ⚡️

Ранее я рассказала как выделять микросервисы. А сегодня хочу дать вам полную подборку под проект, которую мы затем представим на C4 / Container микросервисной архитектуры.

Аутентификация и авторизация
Отвечает за доступ пользователей в систему, их роли и права.
Выделяется отдельно, так как авторизация общая для всех других сервисов системы

Управление пользователями
Пользователь – отдельная сущность со своим жизненным циклом, которой можно управлять независимо от остальных данных системы

Управление недвижимостью
Недвижимость – отдельная сущность со своим жизненным циклом и статусами, которой можно управлять независимо

Поиск недвижимости
Фильтрация и поиск объектов с учетом занятости.
Самая высоконагруженная функция в системе, её стоит держать отдельно

Бронирования
Бронирование – отдельная сущность и пользовательский сценарий, требующий сложной бизнес-логики

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

Рейтинг и отзывы
Отзывы – это отдельный тип данных, с которым можно работать независимо, не нагружая основную часть системы

Уведомления

Реализует общий для всех сервисов сценарий отправки email, push, SMS

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

Чаты и поддержка
Реализует общение пользователей с владельцами жилья и поддержку.
Позволяет реализовать обмен сообщениями с уведомлениями

Лояльность
С
кидки и промоакции – отдельные сущности со своим жизненным циклом и статусами, которыми можно управлять независимо

Можно ли выделить еще (или иначе) сервисы? Да.

Но уже в этом варианте мы распределили всю основную функциональность, и далее, при необходимости, можем развивать это решение 🙌

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥42
🙌 DBeaver и практика SQL-запросов 🙌

Уже в следующий понедельник пройдёт продвинутый онлайн-практикум по БД и SQL:

🙌 Инструмент DBeaver. Практика SQL-запросов
🗓 3 МАРТА 2025 (ПН)
🕖 19:00 (Мск)

🔗 Подробности и регистрация

План:
1*. Знакомство с инструментом DBeaver. Подключение тестовой БД
2*. О применении SQL аналитиками. Ключевые операторы SQL-запросов.
3. Практика SQL-запросов на получение данных в DBeaver.
4. Использование AI (искусственного интеллекта) в качестве помощника в работе с SQL-запросами.

* - самостоятельная подготовка по видео-уроку в платформе, на занятии максимально практикуемся с SQL.
** - т.к. есть пересечение с открытым уроком по архитектуре, то даем всем участникам практикума расширенный доступ до 10 марта.



Практикум подойдёт, если вы:
✔️ Умеете проектировать ER-диаграммы (логический уровень минимум)
✔️ Хотите освоить SQL с нуля, на практике, за одно занятие
✔️ Научиться упрощать свою жизнь с использованием Искусственного Интеллекта при работе с SQL

Этот важный практикум для системных аналитиков, который поможет понять что такое SQL и зачем он на примере работы с реальной базой данных 🙌

Материалы по БД для знакомства и подготовки к онлайн-практикуму по DBeaver + SQL:
🔗 Статья о том, зачем БД аналитику
🔗 Статья о прекрасных возможностях DBeaver
🔗 Обучающее видео "Проектирование БД - логический уровень"

До встречи на практикуме! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🔥5😁31
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Микросервисная архитектура (МСА) — это современный подход к разработке высоконагруженных приложений.

Ключевые компоненты, которые используются для его реализации:


Клиенты — это Frontend-приложения или другие системы, которые взаимодействуют с Backend (сервер-приложением).


CDN (Content Delivery Network) — сеть серверов, стратегически распределенных по всему миру. Они кэшируют и доставляют статические ресурсы (изображения, скрипты и т. д.) пользователям с ближайшего сервера, оптимизируя время загрузки.


API Gateway — единая точка входа для всех клиентов API. Он маршрутизирует запросы на нужные микросервисы, благодаря чему клиентам не надо думать о том, к какому сервису обратиться для вызова конкретной функции.

Он также может управлять аутентификацией, ограничением количества запросов (rate limiting) и другими доп. функциями.


Микросервисы — это независимые компоненты, каждый из которых выполняет свою конкретную бизнес-логику.

Они взаимодействуют между собой с помощью легковесных протоколов, таких как HTTP (REST), gRPC или через асинхронные сообщения.


Брокер сообщений — обеспечивает асинхронное взаимодействие между микросервисами.

Развязка сервисов через брокер (например, Kafka, RabbitMQ) делает систему более гибкой и отказоустойчивой, позволяя микросервисам работать независимо.


Базы данных — в МСА действует принцип "база данных на сервис". Это принцип предотвращает жёсткие связи между сервисами и позволяет использовать разные технологии хранения данных (polyglot persistence), выбирая оптимальные решения под конкретные задачи.


Identity Provider — отвечает за аутентификацию (проверку личности пользователя) и авторизацию (определение прав доступа).


Service Registry and Discovery — это динамический каталог, в котором микросервисы регистрируются и находят друг друга.


Service Coordination — инструменты, которые помогают управлять координацией и синхронизацией распределенных сервисов, обеспечивая их бесперебойную работу и согласованность данных.


#АрхитектураGA
🔥3314👍5
Архитектура МСА - C4 Container - BookingGA.png
1.3 MB
🔵 C4 / Container - пример для микросервисной архитектуры с брокером, БД и ФХ 🔵

Уровень C4 / Container показывает независимые по коду приложения системы.

И когда мы говорим про микросервисный подход к архитектуре (МСА), то этих контейнеров ооочень много.

Что мы видим на C4 / Container:
✔️ Пользователи
✔️ Внешние системы
✔️ Мобильные и веб-приложения [контейнеры]
✔️ Микросервисы [к]
✔️ API Gateway (маршрутизатор API-запросов) [к]
✔️ БД и ФХ [к]
✔️ API для взаимодействия сервисов
✔️ Брокер для асинхронного обмена [к]

Сравните схему с монолитом и увидите, как лаконично смотрится один контейнер монолитного Backend, и как перегружена схема микросервисов.

Поэтому, как лайфхак, можно показать все микросервисы, брокеров, БД и ФХ на уровне C4/Component (который нужен для модулей кода), но это будет противоречить нотации. Хотя станет удобнее читать и понимать схемы.

На практике команды часто адаптируют C4 под себя. Я рекомендую придерживаться нотации, здравого смысла и принципа понятности.

-----------

❗️ Чтобы это был не просто еще один сохраненный пост, выполните небольшие упражнения:

1. Как будет реализован алгоритм создания нового бронирования?

В результате бронирования надо занять даты в календаре и отправить уведомления владельцу + арендатору о создании нового бронирования на email.

Пройдите алгоритм по цепочке:
➡️ Пользователь нажимает кнопку бронирования ⬇️
➡️ Frontend отправляет API-запрос ⬇️
➡️ API Gateway принимает запрос и направляет на Сервис Бронирований
➡️ Сервис Бронирований...

Обратите внимание на чтение и запись событий из брокера.

2. Напишите список сервисов, которые пишут сообщения в брокер Kafka, и которые читают сообщения из него.


-----------

Ответы разберу на следующей неделе, когда познакомлю вас с брокерами поближе 🙂


Материалы, которые помогут в понимании прикрепленных схем:
🔗 C4 - знакомство с нотацией моделирования
🔗 C4/Context - как строить для проекта BookingGA
🔗 C4/Container для монолита
🔗 Ключевые элементы МСА
🔗 Выделение микросервисов BookingGA

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥153
💥 Открытый урок по Архитектуре уже завтра 💥

Чтобы помочь вам в изучении основ проектирования архитектуры, мы проводим открытый урок:

💎 Проектирование архитектуры: от монолита к микросервисам
🗓 Доступ с 1 по 3 марта (сб-пн)
🔗 Подробности и регистрация

Зачем нужно это обучение:
+ Узнаете, как аналитики могут влиять на архитектуру.
+ Разберетесь в отличиях монолита, сервисов и микросервисов.
+ Научитесь проектировать схему архитектуры с нуля.
+ Поймете, с какими проблемами сталкиваются при делении монолита.
+ Получите готовые схемы и подходы по проектированию.

Навыки, полученные на практике во время занятия, вы сможете применять в реальных проектах. Они помогут стать более ценным специалистом на рынке 🙌

Регистрируйтесь, чтобы получить доступ к этому обучению!
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3😁1👌1