🙌 Как выглядит идеальная API-документация в Postman для портфолио СА? 🙌
1️⃣ Есть общее описание проекта.
2️⃣ Есть информация о способе авторизации запросов.
3️⃣ Используются переменные окружения — удобно для переключения между средами.
4️⃣ У каждого метода есть описание: что делает, кому доступен, ограничения.
5️⃣ Приведены примеры всех возможных ответов:
и успешных,
и ошибочных.
6️⃣ Примеры JSON-запросов и ответов — реалистичные.
7️⃣ Headers настроены там, где это требуется.
8️⃣ В демо документации показано только 2 метода — для портфолио желательно не менее 10 📌
Образец документации для проекта #MeetsGA в открытом доступе:
📎 https://documenter.getpostman.com/view/20545501/2sB3BANYdP
Метод создания встречи аккуратно перенесён из Confluence.
Все методы оформлены так, как должно быть в идеальном портфолио системного аналитика 🙌
Да и не только в портфолио, а конечно же и в ваши проектах!
🟠 По нажатию на "Run in Postman" вы можете открыть Postman-коллекцию и посмотреть как она была создана.
Сохраняйте и используйте как пример для своих проектов 🤝
#RestApiGA
1️⃣ Есть общее описание проекта.
2️⃣ Есть информация о способе авторизации запросов.
3️⃣ Используются переменные окружения — удобно для переключения между средами.
4️⃣ У каждого метода есть описание: что делает, кому доступен, ограничения.
5️⃣ Приведены примеры всех возможных ответов:
и успешных,
и ошибочных.
6️⃣ Примеры JSON-запросов и ответов — реалистичные.
7️⃣ Headers настроены там, где это требуется.
8️⃣ В демо документации показано только 2 метода — для портфолио желательно не менее 10 📌
Образец документации для проекта #MeetsGA в открытом доступе:
Метод создания встречи аккуратно перенесён из Confluence.
Все методы оформлены так, как должно быть в идеальном портфолио системного аналитика 🙌
Да и не только в портфолио, а конечно же и в ваши проектах!
🟠 По нажатию на "Run in Postman" вы можете открыть Postman-коллекцию и посмотреть как она была создана.
Сохраняйте и используйте как пример для своих проектов 🤝
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏22❤19👍6
🟢 Практическое руководство по Swagger [OpenAPI] для СА 🟢
Чтобы работать с REST API, важно понимать, что такое OpenAPI и зачем нужен Swagger.
👉 OpenAPI — это стандарт описания REST API в формате .yaml или .json.
Это не документация «для людей», это машиночитаемая спецификация, на основе которой можно:
✅ генерировать и валидировать код (или наоборот собирать её из кода)
✅ писать автотесты
✅ создавать мок-сервера
✅ и коформлять документацию в Swagger
🛠 Swagger — набор инструментов для работы с OpenAPI:
– Swagger Editor — редактор .yaml файлов OpenAPI
– Swagger UI — интерфейс с кнопками и примерами
– SwaggerHub — облако, где можно делиться документацией (и делать портфолио)
– Codegen — генератор серверов и клиентов
👉 Что входит в идеальную API-документацию в Swagger (OpenAPI) для портфолио СА:
1️⃣ Общее описание проекта
2️⃣ Настроенная авторизация
3️⃣ Выбор окружения (mock, dev, prod)
4️⃣ Описания у каждого метода
5️⃣ Примеры всех ответов: успех и ошибки
6️⃣ Реалистичные JSON-примеры
7️⃣ Настроенные Headers
8️⃣ В демо — 2 метода. Для портфолио нужно хотя бы 10 👍
Пример спецификации OpenAPI для проекта #MeetsGA в SwaggerHub:
🔗 Swagger-документация
🔗 Swagger Editor с исходным кодом
(для РФ возможно потребуется VPN)
📍Часто спецификация OpenAPI генерируется из кода, автоматически, но также часто бывают ситуацим, когда его надо описывать вручную аналитикам.
OpenAPI для MeetsGA я собрала с помощью AI на основе Postman — всего за 10 минут🤖
Чтобы разобраться с OpenAPI предлагаю вам серию практических руководств:
🔗 1. Регистрация аккаунта и создание демо-проекта
🔗 2. Создание собственного проекта и работа с базовыми настройками, первые строки кода
🔗 3. Описание методов POST и GET по спецификации OpenAPI
Умение работать с OpenAPI помогает структурировать понимание REST API.
А ещё это отличный способ показать свои навыки проектирования API через портфолио 📂
#RestApiGA
Чтобы работать с REST API, важно понимать, что такое OpenAPI и зачем нужен Swagger.
👉 OpenAPI — это стандарт описания REST API в формате .yaml или .json.
Это не документация «для людей», это машиночитаемая спецификация, на основе которой можно:
✅ генерировать и валидировать код (или наоборот собирать её из кода)
✅ писать автотесты
✅ создавать мок-сервера
✅ и коформлять документацию в Swagger
🛠 Swagger — набор инструментов для работы с OpenAPI:
– Swagger Editor — редактор .yaml файлов OpenAPI
– Swagger UI — интерфейс с кнопками и примерами
– SwaggerHub — облако, где можно делиться документацией (и делать портфолио)
– Codegen — генератор серверов и клиентов
👉 Что входит в идеальную API-документацию в Swagger (OpenAPI) для портфолио СА:
1️⃣ Общее описание проекта
2️⃣ Настроенная авторизация
3️⃣ Выбор окружения (mock, dev, prod)
4️⃣ Описания у каждого метода
5️⃣ Примеры всех ответов: успех и ошибки
6️⃣ Реалистичные JSON-примеры
7️⃣ Настроенные Headers
8️⃣ В демо — 2 метода. Для портфолио нужно хотя бы 10 👍
Пример спецификации OpenAPI для проекта #MeetsGA в SwaggerHub:
(для РФ возможно потребуется VPN)
📍Часто спецификация OpenAPI генерируется из кода, автоматически, но также часто бывают ситуацим, когда его надо описывать вручную аналитикам.
OpenAPI для MeetsGA я собрала с помощью AI на основе Postman — всего за 10 минут
Чтобы разобраться с OpenAPI предлагаю вам серию практических руководств:
Умение работать с OpenAPI помогает структурировать понимание REST API.
А ещё это отличный способ показать свои навыки проектирования API через портфолио 📂
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥23🔥8❤3🥰2👍1
Приглашаем вас на новый продвинутый практикум по БД и SQL!
📚 Проектирование распределенных БД
🗓 11 августа, 19:00 Мск
👩🏫 Екатерина Ананьева
План:
1. Базовые понятия архитектуры: сервис-ориентированная (SOA) и микросервисная (MSA) // изучаете в записи, перед занятием
2. Знакомство с проектом: выделение сервисов с собственными БД и распределение сущностей по ним
3. Практика проектирования распределенных БД. Фокус на физических моделях (PostgreSQL)
Актуальный проект:
Маркетплейс (аналог Ozon, Wieldberries и тд)
👉 Сразу после записи на практику доступно последнее актуальное занятие по миграции данных между БД, чтобы сразу было что изучать.
Участие в занятии актуально для аналитиков, кто уже знаком с проектированием БД и хочет погружаться в работу с более сложными задачами 💪
До встречи онлайн!
Вопросы? Пишите @getanalyst или через сайт 👌
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤6
📌 84 термина по Архитектуре, которые важно знать Системному Аналитику 📌
◻️ Общие архитектурные понятия
1. Архитектура системы
2. Компонент
3. Модуль
4. Подсистема
5. Сервис
6. Backend
7. Frontend
8. Web-приложение
9. Сайт
10. Desktop-приложение
11. Мобильное приложение
12. Виджет
🧱 Архитектурные стили и подходы
13. Монолитная архитектура
14. Модульный монолит
15. Сервис-ориентированная архитектура (SOA)
16. Микросервисы (MSA)
17. Событийно-ориентированная архитектура (EDA)
18. Слоистая архитектура
19. API Gateway
20. Хореография
21. Оркестрация
22. Service Registry and Discovery
23. Backend for Frontend (BFF)
24. Database-per-Service (БД на сервис)
25. CQRS (Command Query Responsibility Segregation)
26. Domain-Driven Design (DDD)
27. Event Storming
28. Чистая архитектура
🔗 Интеграция и взаимодействие компонентов
29. API (Application Programming Interface)
30. REST API
31. GraphQL
32. gRPC
33. SOAP
34. WebSocket
35. Синхронное взаимодействие
36. Асинхронное взаимодействие
37. Webhooks
38. Polling
39. Long Polling
40. Message Broker (Брокер сообщений)
41. Kafka
42. RabbitMQ
43. ESB (Enterprise Service Bus)
💾 Хранение данных
44. База данных (БД)
45. СУБД
46. Реляционные БД (PostgreSQL, SQLite, MySQL, Oracle и др.)
47. NoSQL БД (MongoDB, Redis и др.)
48. Файловое хранилище
49. Шардирование
50. Репликация
51. Кэширование
🔐 Безопасность
52. Authentication (Аутентификация)
53. Authorization (Авторизация)
54. SSO (Single Sign-On)
55. OAuth 2.0
56. JWT
57. Token
58. Bearer Token
59. Basic Authentication
60. Keycloak
61. TLS
62. HTTPS
63. WWS
64. Аудит
🖼 Нефункциональные требования (НФТ)
65. Масштабируемость
66. Доступность
67. Отказоустойчивость
68. Производительность
69. Сопровождаемость
70. Безопасность
⚙️ DevOps и инфраструктура
71. CI/CD (Continuous Integration / Continuous Delivery)
72. Балансировщик нагрузки (Load Balancer)
73. Docker
74. Kubernetes
75. Service Mesh
76. Мониторинг (Prometheus, Grafana, Zabbix и др.)
77. Логирование (ELK с Kibana, Loki + Grafana и др.)
78. Дашборды
79. Tracing
80. Health Check
📐 Проектирование и документация
81. UML Sequence Diagram
82. UML Activity Diagram
83. C4 Model (Context, Container, Component, Code)
84. Archimate
85. ERD (Entity-Relationship Diagram)
86. Нефункциональные требования (НФТ)
87. Архитектурные решения
📍 Сохрани себе — пригодится при знакомстве с архитектурой, микросервисами, API и подготовке к собеседованиям 😎
P.S. Есть что добавить? Пиши в комментарии!
#АрхитектураGA
◻️ Общие архитектурные понятия
1. Архитектура системы
2. Компонент
3. Модуль
4. Подсистема
5. Сервис
6. Backend
7. Frontend
8. Web-приложение
9. Сайт
10. Desktop-приложение
11. Мобильное приложение
12. Виджет
🧱 Архитектурные стили и подходы
13. Монолитная архитектура
14. Модульный монолит
15. Сервис-ориентированная архитектура (SOA)
16. Микросервисы (MSA)
17. Событийно-ориентированная архитектура (EDA)
18. Слоистая архитектура
19. API Gateway
20. Хореография
21. Оркестрация
22. Service Registry and Discovery
23. Backend for Frontend (BFF)
24. Database-per-Service (БД на сервис)
25. CQRS (Command Query Responsibility Segregation)
26. Domain-Driven Design (DDD)
27. Event Storming
28. Чистая архитектура
🔗 Интеграция и взаимодействие компонентов
29. API (Application Programming Interface)
30. REST API
31. GraphQL
32. gRPC
33. SOAP
34. WebSocket
35. Синхронное взаимодействие
36. Асинхронное взаимодействие
37. Webhooks
38. Polling
39. Long Polling
40. Message Broker (Брокер сообщений)
41. Kafka
42. RabbitMQ
43. ESB (Enterprise Service Bus)
💾 Хранение данных
44. База данных (БД)
45. СУБД
46. Реляционные БД (PostgreSQL, SQLite, MySQL, Oracle и др.)
47. NoSQL БД (MongoDB, Redis и др.)
48. Файловое хранилище
49. Шардирование
50. Репликация
51. Кэширование
🔐 Безопасность
52. Authentication (Аутентификация)
53. Authorization (Авторизация)
54. SSO (Single Sign-On)
55. OAuth 2.0
56. JWT
57. Token
58. Bearer Token
59. Basic Authentication
60. Keycloak
61. TLS
62. HTTPS
63. WWS
64. Аудит
🖼 Нефункциональные требования (НФТ)
65. Масштабируемость
66. Доступность
67. Отказоустойчивость
68. Производительность
69. Сопровождаемость
70. Безопасность
⚙️ DevOps и инфраструктура
71. CI/CD (Continuous Integration / Continuous Delivery)
72. Балансировщик нагрузки (Load Balancer)
73. Docker
74. Kubernetes
75. Service Mesh
76. Мониторинг (Prometheus, Grafana, Zabbix и др.)
77. Логирование (ELK с Kibana, Loki + Grafana и др.)
78. Дашборды
79. Tracing
80. Health Check
📐 Проектирование и документация
81. UML Sequence Diagram
82. UML Activity Diagram
83. C4 Model (Context, Container, Component, Code)
84. Archimate
85. ERD (Entity-Relationship Diagram)
86. Нефункциональные требования (НФТ)
87. Архитектурные решения
📍 Сохрани себе — пригодится при знакомстве с архитектурой, микросервисами, API и подготовке к собеседованиям 😎
P.S. Есть что добавить? Пиши в комментарии!
#АрхитектураGA
🔥54❤20👌3🤔1🤩1
✅ Компоненты архитектуры: шпаргалка для системных аналитиков и архитекторов ✅
Компонент — логически и технологически изолированный модуль архитектуры, реализующий строго определённые функции.
👉 обладает собственной кодовой базой и конфигурацией,
👉 разворачивается и масштабируется автономно,
👉 с другими модулями взаимодействует через формализованные интерфейсы.
При построении архитектурной схемы системный аналитик / архитектор должен зафиксировать все компоненты, их зоны ответственности и показать способы взаимодействия — используемые протоколы, API или SDK.
🖥 Сайты — информационные веб-страницы, без функций управления данными, только чтение. Дополнительно могут работать с заявками, управлением контентом (CMS), минималистичными ЛК пользователей и приемом платежей.
📱 Мобильные приложения — нативные (iOS, Android) или кросс‑платформенные (Flutter/React Native) клиенты с доступом к датчикам и оборудованию устройства, офлайн‑кэшем и пуш‑уведомлениями.
🖥 Веб-приложения — одно‑ или многостраничные приложения, работающие в браузере. Могут устанавливаться на сервера как независимо от Backend, так и включать в себя Backend (монолиты).
💻 Десктоп-приложения — устанавливаемые на компьютер программы, которые получают доступ к файловой системе, драйверам, оборудованию, и могут работать оффлайн. Например, редакторы фотографий, приложения банкоматов, кассы.
🔗 Виджеты — встраиваемые мини‑приложения (JS/iframe‑компоненты), добавляющие отдельную функцию в чужой интерфейс, без изменения кода и полного перезапуска той системы, куда они встраиваются.
🔹 Монолит — единое backend-приложение, где все логические модули системы организованы в одной общей кодовой базе. Деплоится и масштабируется только целиком, нельзя обновить только отдельный модуль внутри монолита. Обычно имеет только одну БД со всеми данными в ней.
🔹 Сервисы — логически выделенный компонент системы, отдельное backend-приложение средних размеров с ограниченным набором бизнес-логики. Деплоится и масштабируется независимо от остальных сервисов. Может иметь свою БД или использовать общую с другими сервисами.
🔹 Микросервисы — небольшой автономный сервис, владеющий узким бизнес‑контекстом, меньшим, чем у обычных сервисов, и (часто) со своей БД. Деплоится и масштабируется независимо от остальных сервисов.
🔹 API Gateway — единая точка входа в Backend-приложение с архитектурой из сервисов или микросервисов. Отвечает за маршрутизацию запросов в нужные сервисы, может выполнять функции аутентификации и авторизации, проверять лимиты по запросам от клиентов, выполнять агрегацию и трансформацию ответов, кэшировать данные и собирать метрики для мониторинга.
🔹 Базы данных (БД) — отвечают за хранение текстовых данных в определенной структуре: реляционные (PostgreSQL, Oracle и другие), NoSQL, time‑series.
🔹 Файловое хранилище (ФХ) — компонент, отвечающий за долговременное хранение документов, фото, медиа и других файлов системы.
🔹 Брокеры сообщений — асинхронный обмен сообщениями (Kafka, RabbitMQ и другие).
🔹 Шина данных, ESB (Enterprise Service Bus) — интеграционная шина уровня предприятия, которая объединяет разнородные приложения через единый коммуникационный слой и «умную» посредническую логику. Типична для SOA архитектуры.
🩶 Внешние системы — платёжные системы, CRM, ЭДО и другие системы, с которыми нужна интеграция.
🎥 Камеры
🖨 Принтеры, чековые терминалы
💳 Считыватели банковских карт
🎙 Микрофоны
📦 RFID/Barcode‑сканеры
🌡 IoT‑датчики (температура, влажность, движение).
и другие.
Используйте этот перечень как чек‑лист.
Он гарантирует, что в архитектурном описании не останется «слепых зон».
Каждый компонент должен быть явно показан на схеме — например, в нотации C4.
#АрхитектураGA
Компонент — логически и технологически изолированный модуль архитектуры, реализующий строго определённые функции.
👉 обладает собственной кодовой базой и конфигурацией,
👉 разворачивается и масштабируется автономно,
👉 с другими модулями взаимодействует через формализованные интерфейсы.
При построении архитектурной схемы системный аналитик / архитектор должен зафиксировать все компоненты, их зоны ответственности и показать способы взаимодействия — используемые протоколы, API или SDK.
Frontend-компоненты:
🖥 Сайты — информационные веб-страницы, без функций управления данными, только чтение. Дополнительно могут работать с заявками, управлением контентом (CMS), минималистичными ЛК пользователей и приемом платежей.
📱 Мобильные приложения — нативные (iOS, Android) или кросс‑платформенные (Flutter/React Native) клиенты с доступом к датчикам и оборудованию устройства, офлайн‑кэшем и пуш‑уведомлениями.
🖥 Веб-приложения — одно‑ или многостраничные приложения, работающие в браузере. Могут устанавливаться на сервера как независимо от Backend, так и включать в себя Backend (монолиты).
💻 Десктоп-приложения — устанавливаемые на компьютер программы, которые получают доступ к файловой системе, драйверам, оборудованию, и могут работать оффлайн. Например, редакторы фотографий, приложения банкоматов, кассы.
🔗 Виджеты — встраиваемые мини‑приложения (JS/iframe‑компоненты), добавляющие отдельную функцию в чужой интерфейс, без изменения кода и полного перезапуска той системы, куда они встраиваются.
Backend-компоненты:
🔹 Монолит — единое backend-приложение, где все логические модули системы организованы в одной общей кодовой базе. Деплоится и масштабируется только целиком, нельзя обновить только отдельный модуль внутри монолита. Обычно имеет только одну БД со всеми данными в ней.
🔹 Сервисы — логически выделенный компонент системы, отдельное backend-приложение средних размеров с ограниченным набором бизнес-логики. Деплоится и масштабируется независимо от остальных сервисов. Может иметь свою БД или использовать общую с другими сервисами.
🔹 Микросервисы — небольшой автономный сервис, владеющий узким бизнес‑контекстом, меньшим, чем у обычных сервисов, и (часто) со своей БД. Деплоится и масштабируется независимо от остальных сервисов.
🔹 API Gateway — единая точка входа в Backend-приложение с архитектурой из сервисов или микросервисов. Отвечает за маршрутизацию запросов в нужные сервисы, может выполнять функции аутентификации и авторизации, проверять лимиты по запросам от клиентов, выполнять агрегацию и трансформацию ответов, кэшировать данные и собирать метрики для мониторинга.
🔹 Базы данных (БД) — отвечают за хранение текстовых данных в определенной структуре: реляционные (PostgreSQL, Oracle и другие), NoSQL, time‑series.
🔹 Файловое хранилище (ФХ) — компонент, отвечающий за долговременное хранение документов, фото, медиа и других файлов системы.
🔹 Брокеры сообщений — асинхронный обмен сообщениями (Kafka, RabbitMQ и другие).
🔹 Шина данных, ESB (Enterprise Service Bus) — интеграционная шина уровня предприятия, которая объединяет разнородные приложения через единый коммуникационный слой и «умную» посредническую логику. Типична для SOA архитектуры.
🩶 Внешние системы — платёжные системы, CRM, ЭДО и другие системы, с которыми нужна интеграция.
Hardware-компоненты:
🎥 Камеры
🖨 Принтеры, чековые терминалы
💳 Считыватели банковских карт
🎙 Микрофоны
📦 RFID/Barcode‑сканеры
🌡 IoT‑датчики (температура, влажность, движение).
и другие.
Используйте этот перечень как чек‑лист.
Он гарантирует, что в архитектурном описании не останется «слепых зон».
Каждый компонент должен быть явно показан на схеме — например, в нотации C4.
#АрхитектураGA
❤35❤🔥10🦄5👍3
Когда ты почти год с огромной отдачей работаешь с людьми, это оставляет огромный след в душе. Навсегда ♥️
Я хочу поблагодарить всю команду, с которой мы работали над проектом.
Завершен поток 2024 года по программе повышения квалификации до middle СА с нуля.
За прошедший год:
- материалы как всегда улучшены и обновлены
- добавлено много лайфхаков по AI
- добавлены темы для senior
- больше индивидуального подхода к каждому аналитику
- почти все 27 встреч со мной (Екатерина Ананьева)
Что дальше:
С сентября 2025 стартует последний полный онлайн-поток программы для системных аналитиков с нуля.
С 2026 года — переход в формат просмотра записей и наставничества.
Почему так:
Я расту и беру на себя всё больше задач и проектов за пределами GetAnalyst.
Времени на полный формат уже не хватает, а качество больших курсов в режиме «разберётесь сами» — не мой подход. Поэтому буду стараться сохранить индивидуальное внимание каждому участнику настолько, насколько это возможно. До последнего.
Этот проект всегда будет с заботой о каждом.
Потому что вы выбираете нас, а мы искренне хотим дать вам всё — и даже больше 🙌
Я хочу поблагодарить всю команду, с которой мы работали над проектом.
Завершен поток 2024 года по программе повышения квалификации до middle СА с нуля.
За прошедший год:
- материалы как всегда улучшены и обновлены
- добавлено много лайфхаков по AI
- добавлены темы для senior
- больше индивидуального подхода к каждому аналитику
- почти все 27 встреч со мной (Екатерина Ананьева)
Что дальше:
С сентября 2025 стартует последний полный онлайн-поток программы для системных аналитиков с нуля.
С 2026 года — переход в формат просмотра записей и наставничества.
Почему так:
Я расту и беру на себя всё больше задач и проектов за пределами GetAnalyst.
Времени на полный формат уже не хватает, а качество больших курсов в режиме «разберётесь сами» — не мой подход. Поэтому буду стараться сохранить индивидуальное внимание каждому участнику настолько, насколько это возможно. До последнего.
Этот проект всегда будет с заботой о каждом.
Потому что вы выбираете нас, а мы искренне хотим дать вам всё — и даже больше 🙌
❤26❤🔥8🤔5😁2⚡1
Сегодня на онлайн-практикуме разберём, как аналитику проектировать БД для распределенной архитектуры систем:
1️⃣ Познакомитесь с архитектурными подходами.
2️⃣ Освоите принципы проектирования БД под сервисную и микросервисную архитектуру.
3️⃣ Попрактикуетесь выделять микросервисы.
4️⃣ Научитесь продумывать, как синхронизировать данные между сервисами без потерь и конфликтов.
Ждём аналитиков, кто хочет расширить свою экспертизу в архитектуре систем и БД!
📚 Проектирование распределенных БД
🗓 11 августа, 19:00 Мск
👩🏫 Екатерина Ананьева
До встречи онлайн!
Вопросы? Пишите в ЛС @getanalyst 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2
GetAnalyst_7_шаблонов_проектирования_архитектуры_для_СА.pdf
1.5 MB
📚 7 видов архитектуры, которые важно знать СА 📚
В простых проектах аналитикам не надо разбираться в архитектуре.
Но в сложных продуктовых компаниях, как банки, маркетплейсы, страховые и т.п., где преобладают сервисная (SOA) и микросервисная (MSA) архитектуры, аналитикам важно разбираться в этом вопросе.
Понимание видов архитектуры нужно, чтобы грамотно проектировать новые функции и правильно интегрировать их в существующую инфраструктуру.
👉 7 шаблонов проектирования архитектуры, которые важно знать и понимать СА:
1. Монолит
2. Слоистая архитектура
3. Модульная архитектура
4. Клиент-Серверная архитектура
5. Сервис-ориентированная Архитектура (SOA)
6. Микросервисная архитектура (MSA)
7. Событийно-ориентированная архитектура (EDA)
Вопросы по ним уже почти всегда задают на собеседованиях для Middle и выше аналитиков.
📚 В мини-книге к посту вы найдёте:
+ описание каждого подхода,
+ связи между ними,
+ картинки,
+ примеры.
Сохраняйте и пользуйтесь!
P.S. А если интересно погрузиться в архитектуру для кода, то рекомендую послушать подкаст про Чистую архитектуру
#АрхитектураGA
В простых проектах аналитикам не надо разбираться в архитектуре.
Но в сложных продуктовых компаниях, как банки, маркетплейсы, страховые и т.п., где преобладают сервисная (SOA) и микросервисная (MSA) архитектуры, аналитикам важно разбираться в этом вопросе.
Понимание видов архитектуры нужно, чтобы грамотно проектировать новые функции и правильно интегрировать их в существующую инфраструктуру.
👉 7 шаблонов проектирования архитектуры, которые важно знать и понимать СА:
1. Монолит
2. Слоистая архитектура
3. Модульная архитектура
4. Клиент-Серверная архитектура
5. Сервис-ориентированная Архитектура (SOA)
6. Микросервисная архитектура (MSA)
7. Событийно-ориентированная архитектура (EDA)
Вопросы по ним уже почти всегда задают на собеседованиях для Middle и выше аналитиков.
📚 В мини-книге к посту вы найдёте:
+ описание каждого подхода,
+ связи между ними,
+ картинки,
+ примеры.
Сохраняйте и пользуйтесь!
P.S. А если интересно погрузиться в архитектуру для кода, то рекомендую послушать подкаст про Чистую архитектуру
#АрхитектураGA
❤🔥24❤14👍8
🅿️ Проект #ParkingGA: архитектура для системы управления парковками 🅿️
Мы начинаем новый проект, в котором на примере системы парковок будем учиться проектировать архитектуру так, как это делают на реальных проектах.
👉 ParkingGA — это платформа для управления парковками, которая автоматизирует процессы от поиска свободного места до оплаты и аналитики загрузки.
Основные сценарии:
✔️ Поиск парковки на карте (уличные, закрытые)
✔️ Бронирование мест
✔️ Контроль занятости мест по датчикам
✔️ Въезд/выезд по номеру автомобиля
✔️ Оплата и продление парковки
✔️ Интеграция с камерами, IoT-датчиками и платёжными системами
✔️ Отчётность для операторов парковок и города
Что будем делать:
1️⃣ Разберём подходы к проектированию архитектуры
2️⃣ Спроектируем микросервисы (МС)
3️⃣ Построим C4-модели: от уровня Context (L1) до Container (L2)
4️⃣ Изучим принципы интеграции МС: синхронные (API) и асинхронные (Kafka, RabbitMQ)
5️⃣ Погрузимся в API Gateway, хореографию и оркестрацию.
6️⃣ Разберём принципы выбора СУБД и хранения данных: PostgreSQL, Redis, NoSQL - что, зачем и почему?
В ходе проекта у вас будет появляться набор материалов по нему: архитектурные схемы, описание сервисов, интеграционные сценарии и другие технические документы.
Это позволит вам уверенно и аргументированно отвечать на архитектурные вопросы как в работе, так и на собеседованиях, а также получить опыт проектирования архитектуры.
Подписывайтесь на @getanalysts и следите за хэштегом #ParkingGA, чтобы изучать архитектуру и быть в курсе актуальных публикаций по проекту 🅿️
#АрхитектураGA
Мы начинаем новый проект, в котором на примере системы парковок будем учиться проектировать архитектуру так, как это делают на реальных проектах.
👉 ParkingGA — это платформа для управления парковками, которая автоматизирует процессы от поиска свободного места до оплаты и аналитики загрузки.
Основные сценарии:
✔️ Поиск парковки на карте (уличные, закрытые)
✔️ Бронирование мест
✔️ Контроль занятости мест по датчикам
✔️ Въезд/выезд по номеру автомобиля
✔️ Оплата и продление парковки
✔️ Интеграция с камерами, IoT-датчиками и платёжными системами
✔️ Отчётность для операторов парковок и города
Что будем делать:
1️⃣ Разберём подходы к проектированию архитектуры
2️⃣ Спроектируем микросервисы (МС)
3️⃣ Построим C4-модели: от уровня Context (L1) до Container (L2)
4️⃣ Изучим принципы интеграции МС: синхронные (API) и асинхронные (Kafka, RabbitMQ)
5️⃣ Погрузимся в API Gateway, хореографию и оркестрацию.
6️⃣ Разберём принципы выбора СУБД и хранения данных: PostgreSQL, Redis, NoSQL - что, зачем и почему?
В ходе проекта у вас будет появляться набор материалов по нему: архитектурные схемы, описание сервисов, интеграционные сценарии и другие технические документы.
Это позволит вам уверенно и аргументированно отвечать на архитектурные вопросы как в работе, так и на собеседованиях, а также получить опыт проектирования архитектуры.
Подписывайтесь на @getanalysts и следите за хэштегом #ParkingGA, чтобы изучать архитектуру и быть в курсе актуальных публикаций по проекту 🅿️
#АрхитектураGA
🔥37❤16👍12❤🔥2
🟠 Domain-Driven Design (DDD): что это и зачем, разбор с примерами 🟠
При работе с крупными системами на этапе проектирования легко утонуть в сотнях бизнес-требований, бизнес-правил и интеграций.
В таких ситуациях на помощь приходит Domain-Driven Design (DDD).
📌 DDD — подход, при котором мы проектируем систему, отталкиваясь от предметной области и понимания языка бизнеса, а не от технических деталей и функциональных требований.
Ключевое:
✅ Единый язык (Ubiquitous Language)
Договариваемся, что бизнес и разработчики используют одинаковые слова, и понимают их одинаково.
Например, в системе парковок:
“Сессия” = время от въезда до выезда
“Льготный клиент” = владелец абонемента или спец. допуска
Результат — меньше путаницы в ТЗ, коде и общении.
✅ Ограниченные контексты (Bounded Context)
Делим большую систему на зоны, внутри которых термины и правила работают одинаково, а за их пределами — могут отличаться.
В системе для парковок мы понимаем, что у нас могут быть большие части:
+ Контроль доступа (камеры, шлагбаумы, проверка разрешений)
+ Платежи (расчёт тарифа, оплата, возвраты)
+ Учёт мест (свободно/занято, бронирования)
Внутри каждой части свои правила и детали, которые не мешают остальным.
💡 Важный момент:
Один Bounded Context ≠ всегда один микросервис.
Это логическая граница. Внутри неё может быть один сервис, несколько микросервисов или модуль монолита.
Но при переходе к MSA часто делают так, что каждый контекст превращается в один или несколько микросервисов.
✅ Модель предметной области (Domain Model)
Это карта всех объектов системы и их правил — в коде, БД, API.
Для системы парковки это может быть:
+ Сущности:
++ ParkingSession: начало, конец, тариф, сумма, статус оплаты.
++ Vehicle: номер, тип, льготы.
++ Spot: зона, номер, статус.
+ Правила:
++ без оплаты выезд запрещён, кроме льготных клиентов;
++ место освобождается только после закрытия сессии парковки.
👉 DDD помогает навести порядок в сложном проекте:
+ общий словарь → меньше недопонимания
+ границы контекстов → управляемая архитектура (и потенциальная основа для микросервисов)
+ модель предметной области → понятный “скелет” системы
Кроме того, что мы наводим порядок, очень часто удаётся закрыть множество пробелов в требованиях при таком подходе.
Если начать проект с этих трёх шагов, то даже самая запутанная система будет спроектирована логично и её развитие будет (без) с меньшим количеством сюрпризов.
#АрхитектураGA #ParkingGA
При работе с крупными системами на этапе проектирования легко утонуть в сотнях бизнес-требований, бизнес-правил и интеграций.
В таких ситуациях на помощь приходит Domain-Driven Design (DDD).
📌 DDD — подход, при котором мы проектируем систему, отталкиваясь от предметной области и понимания языка бизнеса, а не от технических деталей и функциональных требований.
Ключевое:
✅ Единый язык (Ubiquitous Language)
Договариваемся, что бизнес и разработчики используют одинаковые слова, и понимают их одинаково.
Например, в системе парковок:
“Сессия” = время от въезда до выезда
“Льготный клиент” = владелец абонемента или спец. допуска
Результат — меньше путаницы в ТЗ, коде и общении.
✅ Ограниченные контексты (Bounded Context)
Делим большую систему на зоны, внутри которых термины и правила работают одинаково, а за их пределами — могут отличаться.
В системе для парковок мы понимаем, что у нас могут быть большие части:
+ Контроль доступа (камеры, шлагбаумы, проверка разрешений)
+ Платежи (расчёт тарифа, оплата, возвраты)
+ Учёт мест (свободно/занято, бронирования)
Внутри каждой части свои правила и детали, которые не мешают остальным.
💡 Важный момент:
Один Bounded Context ≠ всегда один микросервис.
Это логическая граница. Внутри неё может быть один сервис, несколько микросервисов или модуль монолита.
Но при переходе к MSA часто делают так, что каждый контекст превращается в один или несколько микросервисов.
✅ Модель предметной области (Domain Model)
Это карта всех объектов системы и их правил — в коде, БД, API.
Для системы парковки это может быть:
+ Сущности:
++ ParkingSession: начало, конец, тариф, сумма, статус оплаты.
++ Vehicle: номер, тип, льготы.
++ Spot: зона, номер, статус.
+ Правила:
++ без оплаты выезд запрещён, кроме льготных клиентов;
++ место освобождается только после закрытия сессии парковки.
👉 DDD помогает навести порядок в сложном проекте:
+ общий словарь → меньше недопонимания
+ границы контекстов → управляемая архитектура (и потенциальная основа для микросервисов)
+ модель предметной области → понятный “скелет” системы
Кроме того, что мы наводим порядок, очень часто удаётся закрыть множество пробелов в требованиях при таком подходе.
Если начать проект с этих трёх шагов, то даже самая запутанная система будет спроектирована логично и её развитие будет (без) с меньшим количеством сюрпризов.
#АрхитектураGA #ParkingGA
❤31👏6❤🔥5
GetAnayst_Архитектура_5_основных_сервисов_и_микросервисов.pdf
1.4 MB
🔥 5 типовых сервисов и микросервисов, которые можно выделить в любой архитектуре 🔥
В большинстве проектов, которые используют подход сервисной или микросервисной архитектуры, можно встретить эти пять основных сервисов:
✅ Аутентификация и авторизация
Управление процессами аутентификации пользователей и контроля доступа к ресурсам системы.
✅ Управление пользователями
Обработка регистраций, управление профилями пользователей, хранение и обработка данных пользователей.
✅ Уведомления и рассылки
Отправка уведомлений и сообщений пользователям через различные каналы (email, SMS, push-уведомления).
✅ Управление контентом (блоги на сайтах, новости и подобное)
Управление статическим и динамическим контентом (тексты, изображения, видео), организация его структуры и хранения.
✅ Биллинг и платежи
Обработка и учет платежей, интеграция с платежными шлюзами, выставление счетов. Взаимодействует с внешними платежными шлюзами и банковскими системами.
Если я работаю над проектом с нуля, то использую этот список как чек-лист “С чего начать". Поможет всем IT-специалистам в задачах, связанных с проектированием архитектуры.
В мини-книге прикрепленной к посту рассказала подробнее про каждый сервис, и почему их выделяют как независимые части систем 🙌
#АрхитектураGA
В большинстве проектов, которые используют подход сервисной или микросервисной архитектуры, можно встретить эти пять основных сервисов:
✅ Аутентификация и авторизация
Управление процессами аутентификации пользователей и контроля доступа к ресурсам системы.
✅ Управление пользователями
Обработка регистраций, управление профилями пользователей, хранение и обработка данных пользователей.
✅ Уведомления и рассылки
Отправка уведомлений и сообщений пользователям через различные каналы (email, SMS, push-уведомления).
✅ Управление контентом (блоги на сайтах, новости и подобное)
Управление статическим и динамическим контентом (тексты, изображения, видео), организация его структуры и хранения.
✅ Биллинг и платежи
Обработка и учет платежей, интеграция с платежными шлюзами, выставление счетов. Взаимодействует с внешними платежными шлюзами и банковскими системами.
Если я работаю над проектом с нуля, то использую этот список как чек-лист “С чего начать". Поможет всем IT-специалистам в задачах, связанных с проектированием архитектуры.
В мини-книге прикрепленной к посту рассказала подробнее про каждый сервис, и почему их выделяют как независимые части систем 🙌
#АрхитектураGA
🔥28❤10👍5
Работа в сложных проектах с микросервисами, брокерами и архитектурой - точка роста для системных аналитиков.
Это уровень Senior, на котором аналитик становится ключевым игроком команды, а зарплата растёт вместе со сложностью задач.
Чтобы помочь вам перейти на новый уровень быстрее, мы создали практическую программу:
Вместе мы:
✔️ Построим архитектуру проекта с нуля: монолит, SOA, MSA.
✔️ Разберём и многократно применим нотацию C4.
✔️ Подберём API для проекта и разберём нюансы на практике: REST, GraphQL, gRPC, WebSocket и др.
✔️ Поставим задачи на брокеры (Kafka, RabbitMQ), Webhooks и другие механизмы асинхронного обмена.
Цели, которые ставят и реализуют наши аналитики в процессе обучения:
✅ Повышают грейд внутри компании
✅ Переходят из проектной разработки в продукт
✅ Структурируют знания и проходят аттестации
✅ Получают повышения
✅ Проходят собеседования и выбирают офферы по душе 🩷
🎁 До 25 августа — предзапись на спецусловиях: скидка + доп. обучение по REST API в подарок.
👉 Подробности и запись
Вопросы? Пишите на почту info@getanalyst.ru или напрямую @getanalyst.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤🔥7❤2
🟠 Event Storming: что это и зачем? Связь с DDD 🟠
Одна из главных проблем на старте разработки — разрозненное понимание процессов.
💡 Event Storming — это командная техника "мозгоштурма", которая позволяет:
+ собрать все события бизнес-процесса “от и до”
+ увидеть взаимосвязи между процессами, событиями, данными и системами
+ подготовить основу для построения Bounded Context и Domain Model в DDD.
👉 Как работает Event Storming:
1. Собираем участников: бизнес, аналитиков, разработчиков, архитекторов
2. Выбираем процесс к исследованию
3. Выстраиваем ленту событий на большой доске (Miro, draw io или реальная стена)
👉 Слои модели:
1. События домена — произошедшие факты, в прошедшем времени
2. Команды — действия, которые инициируют события
3. Агрегаты — бизнес-сущности, где хранятся и изменяются данные.
4. Внешние системы
5. Правила
👉 Пример для процесса: “Въезд-выезд на парковке”
🔗 Miro-доска
с примером и теорией
Расклад процессов на доске Miro позволяет:
▫️ увидеть основной сценарий (въезд → стоянка → оплата → выезд)
▫️ учесть альтернативные ветки (не распознан номер, не оплачено вовремя, платёж отклонён)
▫️ проверить полноту требований
📌 Как проводят границы DDD (Bounded Context) после Event Storming
Когда мы делаем Event Storming, у нас получается “лента событий”.
Мы начинаем группировать события, команды и агрегаты по смыслу — где термины, правила и данные работают одинаково.
И каждая такая группа = ограниченный контекст (Bounded Context).
👉 Примеры группировки также показан в Miro
У каждого контекста DDD свой набор терминов и свои правила, которые не зависят от других зон. Наполнение для контекстов получено из Event Storming.
На стыках контекстов мы передаём события или команды через API или брокер сообщений.
В микросервисной архитектуре каждый контекст можно реализовать отдельным сервисом (или группой сервисов), а в монолите — отдельным модулем.
Разбирайтесь наглядно на примере в Miro! И сохраняйте ссылку на доску себе в закладки 😃
#АрхитектураGA #ParkingGA
Одна из главных проблем на старте разработки — разрозненное понимание процессов.
💡 Event Storming — это командная техника "мозгоштурма", которая позволяет:
+ собрать все события бизнес-процесса “от и до”
+ увидеть взаимосвязи между процессами, событиями, данными и системами
+ подготовить основу для построения Bounded Context и Domain Model в DDD.
👉 Как работает Event Storming:
1. Собираем участников: бизнес, аналитиков, разработчиков, архитекторов
2. Выбираем процесс к исследованию
3. Выстраиваем ленту событий на большой доске (Miro, draw io или реальная стена)
👉 Слои модели:
1. События домена — произошедшие факты, в прошедшем времени
2. Команды — действия, которые инициируют события
3. Агрегаты — бизнес-сущности, где хранятся и изменяются данные.
4. Внешние системы
5. Правила
👉 Пример для процесса: “Въезд-выезд на парковке”
с примером и теорией
Расклад процессов на доске Miro позволяет:
▫️ увидеть основной сценарий (въезд → стоянка → оплата → выезд)
▫️ учесть альтернативные ветки (не распознан номер, не оплачено вовремя, платёж отклонён)
▫️ проверить полноту требований
📌 Как проводят границы DDD (Bounded Context) после Event Storming
Когда мы делаем Event Storming, у нас получается “лента событий”.
Мы начинаем группировать события, команды и агрегаты по смыслу — где термины, правила и данные работают одинаково.
И каждая такая группа = ограниченный контекст (Bounded Context).
👉 Примеры группировки также показан в Miro
У каждого контекста DDD свой набор терминов и свои правила, которые не зависят от других зон. Наполнение для контекстов получено из Event Storming.
На стыках контекстов мы передаём события или команды через API или брокер сообщений.
В микросервисной архитектуре каждый контекст можно реализовать отдельным сервисом (или группой сервисов), а в монолите — отдельным модулем.
Разбирайтесь наглядно на примере в Miro! И сохраняйте ссылку на доску себе в закладки 😃
#АрхитектураGA #ParkingGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤9🔥3⚡1