Вера Коновалова | Системный аналитик в IT
2.19K subscribers
205 photos
6 videos
127 links
Системный аналитик 8+ лет
Жиза и наблюдения про работу в IT
Мой курс по СА на Stepik 👉 https://stepik.org/a/247866
Практика 👉 https://stepik.org/a/253170
Связаться 👉 @verakonovalova
Download Telegram
Умеете отдыхать? Поделитесь, как вы расслабляетесь?

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

Но отдых тоже важен, и я хочу у вас спросить: как вы отдыхаете?
Проголосуйте или поделитесь своим способом в комментариях! 👇
🔥8
Наконец нашёл время отдохнуть
🎄 Достал кружку с чаем, уютный плед, включил гирлянды... и тут возникло дикое желание переделать задачу.
💯6😨1
Возвращаемся в строй!

Привет! 👋
Праздники позади, и самое время снова образовываться! 🧠

До Нового года мы много говорили про фронтенд. Разбирали:
* Что разработчики хотят видеть в задачах.
* Как описывать логику в формате «Если — То — Иначе».
* Плохие задачи на фронт и как их исправить.
* Кэширование данных на фронте и многое другое.
Если пропустили — читайте по хэштегу #frontend.

Теперь плавно переходим к новой теме — диаграммы.

Диаграммы помогают системному аналитику наглядно показать взаимодействия внутри системы, между компонентами, людьми, другими системами. А продолжая тему фронтенда, начнём с диаграммы последовательности (Sequence Diagram). Ведь это идеальный инструмент, чтобы показать, как взаимодействуют фронтенд и бэкенд, как фронт реагирует на ответы бэка. Все сценарии и обработка ошибок — наглядно и понятно.

В ближайшие дни будем разбирать, как строить сиквенс-диаграмму на UML.
Следите за обновлениями и готовьте свои вопросы! 😊

#uml #diagrams
👍165🔥4
Sequence Diagram

Диаграмма последовательности или Sequence Diagram (сиквенс-диаграмма) предназначена для наглядного отображения взаимодействий между объектами в системе. Она демонстрирует порядок обмена сообщениями между объектами во времени, а также их жизненный цикл.

Sequence Diagram универсальна и может использоваться для множества кейсов, где важно показать взаимодействия:
1️⃣ Фронтенд ↔️ Бэкенд
2️⃣ Сервис ↔️ Сервис
3️⃣ Пользователь ↔️ Система
4️⃣ Система ↔️ Внешние API
Примеры конкретных кейсов см. в картинках 👆

Дополнительные сценарии применения:
5️⃣ Моделирование сложных процессов
6️⃣ Документация для команды

Sequence Diagram полезна там, где нужно:
* Показать взаимодействие между участниками.
* Уточнить порядок выполнения шагов.
* Отловить узкие места и детально проработать сценарии.

Как рисовать?
1️⃣ В графических редакторах вроде draw.io.
2️⃣ Текстом в PlantUML — это удобно и наглядно. Вы пишете код, а система автоматически строит диаграмму.

#uml #sequence #diagrams
👍193👏3
Фронтенд ↔️ Бэкенд

Диаграмма последовательности отлично подходит для отображения реакции фронтенда на ответы от бэкенда.

📌 Пример: как фронт обрабатывает разные коды ответа после сохранения ресурса.

Диаграмма сделана в PlantUML. Хотите увидеть её визуально?
1️⃣ Зайдите на plantuml.com
2️⃣ Вставьте код👇
3️⃣ Нажмите Submit

@startuml
actor User
participant Frontend
participant Backend
User -> Frontend: Нажимает «Сохранить»
Frontend -> Backend: POST /resources
alt Ответ 200 OK
Backend --> Frontend: {«id», «data»}
Frontend -> Frontend: Отображает сущность в режиме ред-я
else Ответ 500 Internal Server Error
Backend --> Frontend: {«error»: «Server error»}
Frontend -> Frontend: Показывает универсальное сообщение об ошибке
else Ответ 401 Unauthorized
Backend --> Frontend: {«error»: «Unauthorized»}
Frontend -> Frontend: Редирект на страницу авторизации
else Ответ 422
alt Ошибка формата
Backend --> Frontend: {«error»: «Invalid data format», «details»}
Frontend -> Frontend: Показывает сообщение об ошибке из «details»
else Ошибка бизнес-логики
Backend --> Frontend: {«error»: «Business logic error», «details»}
Frontend -> Frontend: Показывает сообщение об ошибке из «details»
end
end
@enduml


Попробуйте построить свою диаграмму и протестировать разные кейсы! 😉


#uml #sequence #diagrams
👍10🔥43
Что сейчас происходит в нашем втором канале? 🚀

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

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

На нашем втором канале Старт карьеры мы как раз сейчас учимся:
📌 Строить технические процессы, бизнес-процессы и алгоритмы.
📌 Мыслить системно: откуда берутся шаги? Как их находить?
📌 Работать с основами системного анализа.

Если вам трудно сориентироваться, что рисовать в схемах — начните с базы. Это поможет уверенно строить диаграммы и прокачает ваши аналитические навыки.

👉 Переходите в канал Старт карьеры.

С вами Вера и Юрий,
основатели AnalystCore ❤️
👍11❤‍🔥3🔥3
Система ↔️ Внешние API

Ещё один пример применения диаграммы последовательности. На этот раз — взаимодействие системы с внешним API для отображения подсказок адресов.

Диаграмма показывает процесс:
1️⃣ Пользователь вводит текст в поле «Адрес».
2️⃣ Система отправляет запрос к внешнему API.
3️⃣ Варианты сценариев: успешный ответ с подсказками, успешный, но пустой ответ или ошибка.

Попробуйте сами!
Заходите на plantuml.com.
Вставьте код👇

@startuml
actor User
participant Frontend
participant Backend
participant DaDataAPI
User -> Frontend: Вводит текст в поле «Адрес»
Frontend -> Backend: POST /suggestions (текст)
Backend -> DaDataAPI: POST /suggestions (текст)
alt Успешный ответ с подсказками
DaDataAPI --> Backend: «suggestions»: [{"value», «unrestricted_value»,"data"}]
Backend --> Frontend: «suggestions»: [«value», «id»]
Frontend -> Frontend: Отображает список подсказок
else Успешный ответ, но пустой массив
DaDataAPI --> Backend: «suggestions»: []
Backend --> Frontend: «suggestions»: []
Frontend -> Frontend: Отображает сообщение «Адрес не найден»
else Ошибка от DaDataAPI (код != 200)
DaDataAPI --> Backend: «error»
Backend -> Backend: Логирует ошибку
Backend --> Frontend: «error»
Frontend -> Frontend: Отображает сообщение «Что-то пошло не так. Попробуйте позже»
end
@enduml


#uml #sequence #diagrams
👍113🔥1🌚1
Система ↔️ Система

Нарисовали сиквенс-диаграмму на взаимодействие между двумя сервисами.

Кстати, этот пример демонстрирует, что не только «человек» инициирует какой-то процесс. В нашем примере процесс запускается автоматически, по триггеру — в 01:00.

Хотите нарисовать такую же схему?
Заходите на plantuml.com
Вставьте код👇

@startuml
actor TimeTrigger as «Триггер времени»
participant ReportService as «Сервис отчетности»
participant Kafka as «Kafka»
participant NotificationService as «Сервис уведомлений»

TimeTrigger -> ReportService: Наступило 01:00
ReportService -> ReportService: Генерирует отчет
ReportService -> Kafka: Публикует событие «Отчет готов»

NotificationService -> Kafka: Pull сообщения из топика
NotificationService -> NotificationService: Отправляет письмо, что отчет готов
@enduml


#uml #sequence #diagrams
👍11❤‍🔥4🔥4
Sequence Diagram: базовые элементы. Часть 1

Всем привет! 👋
По итогам опроса большинство выбрало разобрать элементы сиквенс-диаграммы в PlantUML. Начнём с основ — без них никуда:

1️⃣ Участники

Это всё, что взаимодействует в рамках процесса: пользователь (включая разные роли), микросервис, внешняя система, брокер и пр.
Если нужно визуально отделить участников (participant), используйте типы:
* actor
* boundary
* control
* entity
* database
* collections
* queue

Объявляем участников на PlantUML так:

participant Participant
actor Actor
boundary Boundary
control Control
entity Entity
database Database
collections Collections
queue Queue


2️⃣ Линии жизни
Они отображаются автоматически после объявления участника и показывают период, в течение которого объект «живёт» в процессе. Проще говоря, это визуализация начала и завершения активности объекта, чтобы было понятно, когда и как он участвует во взаимодействии.

3️⃣ Сообщения
Отображаются в виде стрелок, показывают, кто инициирует вызов, и кто отвечает:

User -> System: Запрос
System --> User: Ответ


Попробуйте прямо сейчас на plantuml.com: вставьте этот код и посмотрите, как всё визуализируется.

В следующих постах поговорим о ветвлениях (alt, opt), других полезных конструкциях и хорошем стиле.

#sequence #plantuml #diagrams
👍15❤‍🔥5🔥4
Когда открыл PlantUML и видишь, что всё пишется в виде кода:

💬 Да это же просто! Сейчас нарисую!
…через 10 минут…
🤔 А как там создать notebox? И где подключить стили? Кто-нибудь, спасите!

💡 Лайфхак: Начните с самых простых элементов из прошлого поста. А украшение диаграммы (note, цвет, стили) добавьте потом, когда логика на диаграмме будет выстроена правильно — ведь это самое главное.


#plantuml #sequence #diagrams
🔥84
Всем привет! 👋 Поделитесь, сколько лет вы работаете системным аналитиком?
Anonymous Poll
22%
До 1 года
14%
От 1 до 3
14%
От 3 до 6
9%
Более 6
41%
Без опыта, но хочу стать системным аналитиком
9