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

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

РКН №5013005196
Download Telegram
❗️До начала вебинара 15 минут❗️
Последняя возможность попасть на вебинар Интеграции и Swagger для аналитиков😉
https://pruffme.com/webinar/?id=f7833b4cceecb15e3ff81a2c323ea2fd
Вы крутые ♥️ Я рада, что на моих вебинарах и обучении самые заряженные на результаты люди!
👍7
💥 Завершаем запись на ИНТЕГРАЦИИ 💥

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

В результате обучения на практике у всех будут результаты:
✔️ Новый проектный опыт, который пригодится как на текущем месте работы, так и при смене компании, на собеседованиях
✔️ Структурированные знания, ассоциированные с конкретным кейсом, на примере которого можно просто объяснять теорию
✔️ Возможность уверенно расти в должности и доходе

Спасибо вам за доверие! Мне важно, чтобы оно было во время нашего обучения. Именно в среде, где нам не страшно ошибаться и задавать вопросы, мы учимся и развиваемся лучше всего! 🚀
👍1
Синхронное и асинхронное взаимодействияе по REST API не всегда подходит для интеграции систем. Есть альтернатиный вариант- очереди сообщений.

Очередь сообщений – это аналог временного хранилища данных, которое позволяет размещать сообщения и читать данные в установленном порядке. Системы в этом случае взаимодействуют меджду собой в асинхронном режиме. Сообщения в очереди должны быть обработаны как можно скорее. Для этого в некоторых современных реализациях есть специальный параметр - "время жизни сообщения".

Во взаимодействии через очередь есть два компонента, взаимодействие которых нужно обеспечить:
▫️Producer – отправляет сообщения в очередь,
▫️Consumer – получает и читает сообщения из очереди.
Эти компоненты - системы, сервисы, микросервисы. Компоненты могут быть написаны разными разработчиками, на разных языках программирования, иметь разные мощности. А могут быть сервисами внутри одной системы.

Цель очереди: надёжно и быстро передавать сообщения от Producer к Consumer.

Можно сравнить очередь сообщений с обслуживанием очереди в магазине.
1. Покупатели собирают корзины с продуктами и встают с ними в очередь на кассу, чтобы оплатить - отправляют сообщение с товарами из корзины в очередь. Покупатель - producer. Сообщение - корзины с товарами.
2. Покупатели с корзинами стоят в очереди. Все хотят скорее покинуть ее. Есть максимальное время терпения.
3. Очередной покупатель со своей корзиной наконец добирается до кассы. Продавец обрабатывает запрос покупателя - пробивает все продукты из корзины, возвращает финальную стоимость покупателю и разрешает оплатить. Кассир - consumer.

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

Завтра с группой "Интеграции" будем рисовать очереди на схеме архитектуры 📚
🔥14👍41
Системы растут. Становятся более масштабными и сложными. Монолиты делят на сервисы и микросервисы. И очереди становятся необходимы для того, чтобы обеспечить взаимодействие между компонентами системы.

Мы уже знаем, что такое очередь. Но вместе с этим мы будем слышать "брокер сообщений".

🟠 Что такое БРОКЕР СООБЩЕНИЙ? 🟠

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

Сообщения в брокер можно передавать с некоторым ключом — по нему брокер понимает, в какую именно очередь(-и) должно попасть переданное сообщение.

Варианты реализации брокера сообщений:

▶️ Сообщение отправляется напрямую от отправителя к получателю и используется однократно.

▶️ Схема публикации/подписки - отправитель (producer) не знает своих получателей (consumers), и публикует свои сообщения в определённую тему. Потребители, которые подписаны на эту тему, получают сообщения.

Коллеги, делитесь кейсами, кто работал с брокерами сообщений, реализованными по схеме публикации/подписки? Какие задачи решали?
👍15
📌 Кейсы: когда используют очереди на примере Интернет-магазина 📌


Синхронизация данных между системами

Сервис обработки заказов Интернет-магазина синхронизирует сведения о покупках клиентов с CRM-системой.

- CRM система в какой-то момент может стать недоступна.
- Или в магазине в один момент будет проведено 100 платежей, а лимит одновременных запросов в CRM-систему 20, в случае превышения будет ошибка.

Чтобы сообщение о покупке клиента не потерялось и записалось в учетной записи клиента в CRM-системе, на стороне Интернет-магазина его можно поставить в очередь к обработке.
Получается, если CRM-система будет недоступна или пользователи создадут высокую нагрузку, то сообщения не потеряются, а будут накапливаться в очереди до тех пор, пока она снова не станет доступна и не обработает их. Также очередь будет контролировать лимит в 20 сообщений.



Пользователям Интернет-магазина нужно отправлять СМС-уведомления об изменениях статуса заказа. Чтобы уведомления не терялись и гарантированно доставлялись, мы можем использовать очереди обработки сообщений. Например, на стороне СМС-сервиса, все входящие запросы на отправку сообщений будут ставиться в очередь и обрабатываться последовательно, в зависимости от заданного логического приоритета (FIFO/LIFO).

---------

Постановка задач в фоновую (асинхронную) обработку

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

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

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

---------

Снятие отчетов и статистики

Снятие отчета или статистики по продажам в высоконагруженном Интернет-магазине - задача долгая и трудоемкая. А разные пользователи могут часто запрашивать его.

Мы можем реализовать формирование отчетов как асинхронную задачу. Т.е. пользователь будет нажимать кнопку "Сформировать отчет", сразу получать уведомление о том, что его задача на формирование отчета принята в обработку. - запущен фоновый (асинхронный процесс) А когда она дождется своего порядка в очереди, то пользоватеь получит уведомление об ее выполнении.

С точки зрения пользователя это может происходить мгновенно. С точки зрения системы, прежде чем запрос текущего пользователя будет обработан, может быть выполнено несколько других задач.
👍18🔥51
Хотите, чтобы все знания загружались в голову без усилий? 😉

Перешел по ссылке => Нажал "Скачать" => Получил обновления.

Я всегда хотела. Особенно в университете. С 8:00 до 16:00 училась сама, с 18 до 21 преподавала математику и информатику, и с 21 до победного было ДЗ. У меня всегда хватает сил учиться. Есть желание, я осознаю ценность. Вижу результаты.

Сейчас, когда на все 100% знания выбираю я, кнопка "Скачать" работает безотказно. Но в университете, вместе с полезным, был %воды, который я до сих пор не знаю как применить. И с ним кнопка "Скачать знания" не работала.


Мне удалось поучаствовать в обучении одновременно с двух сторон. Наблюдения:

Учат меня: Преподаватель увлеченно объясняет - желание продлить лекцию, любой предмет
Учу я: Переработки за "спасибо", если ребенок хочет разобраться. Я влюблена в математику

Учат меня: Преподаватель читает с листа и делает это явно ради денег, а не от сердца - я сплю или делаю другие ДЗ
Учу я: Истощение, когда один ученик не хотел. Просто не хотел. И ДЗ мама делала... Как бы я ни пыталась подойти
- все было бестолку


Обмен знаниями подобен обмену энергиями. В игру "математика" можно вовлечь, если ты сам ее любишь и если ученик готов пробовать. Важно разжечь желание во время занятия. Дальше оно само. А если его нет, то результата не будет. Да еще и оба истощенные разойдемся 😔

Так с любой учебой. Поэтому волшебная кнопка "Скачать" есть. И она зависит от того, как твой наставник разожжет в тебе костер желания и мотивации🔥
👍6🔥6
Привет! Давно не виделись ♥️

Прошедшую неделю я посвятила своему образованию, расширению нетворкинга в сферах IT+бизнес, и отдыху. Познакомилась еще с несколькими владельцами IT-компаний в США, послушала про особенности стартап-жизни в Силиконовой долине, узнала про организацию процессов разработки "с полей" от опытного программиста.

Окончательно убедилась в том, что позиция "Systms analyst" почти отсутствует в командах крупных IT-компаний 😒 Так что если вы ищите работу в США, то системные аналитики это Project manager / Technical Project Manager.

Бизнес-аналитикам повезло - совпадение почти 1 к 1. Выделенная позиция есть. Очень нравится, что в их подходе к работе особенное внимание уделяется работе с метриками бизнеса, которые собирают Data Analysts. Такого я в живую не видела в России.

Я так понимаю, что полезно было бы пригласить вас в эфир и рассказать про устройство процесса разработки в IT-компаниях.
Собираем 100+ 🔥 под этот пост и планируем эфир "Команда разрботки в США и место аналитика в ней"!
🔥124👍1
Unified Modeling Language (UML) — унифицированный язык моделирования, графическая нотация моделирования. UML показывает объекты и процессы в едином стиле при проектировании. Человеку не нужно читать полотно текста: всё обозначено схематически и визуально приятно глазу.

UML диаграммы делят на 2 типа:

📌 Структурные диаграммы
Показывают статическую структуру системы и её частей на разных уровнях абстракции и реализации.
Больше подходят для описания объектов данных, которые есть в системе, а также компонентов системы.
К ним относятся диаграммы:
✔️ классов,
✔️ объектов,
✔️ компонентов,
✔️ развёртывания.

📌 Диаграммы поведения
Описывают происходящие в системе процессы - есть динамика, движение.
Их используют для описания алгоритмов и поведения системы.
К ним относятся диаграммы:
✔️ деятельности,
✔️ последовательности,
✔️ диаграммы взаимодействия,
✔️ диаграммы состояний.

Документацию по UML можно посмотреть по ссылке:
🔗 http://www.omg.org/spec/UML/
Это спецификация. Есть разные версии - берите самую актуальную. Документ на английском.
Внутри вы найдете полный перечень диаграмм, разбор назначения всех структурных элементов и примеры.
Хороший документ как для начинающих, так и для опытных специалистов.

#getanalyst_UML
🔥16
PlantUML - это бесплатный инструмент для создания UML-диаграмм.

Не является графическим редактором. Все диаграммы описываются в текстовом виде, с помощью специального языка PlantUML со своим синтаксисом. Можно сказать, что диаграммы как-будто программируются.

Язык PlantUML является примером предметно-ориентированного языка. Для построения диаграмм он использует программное обеспечение Graphviz.

История гласит, что инструмент появился, чтобы позволить слепым студентам работать с нотацией моделирования UML. PlantUML помогает слепым программистам разрабатывать и читать диаграммы UML.

Пример
@startuml
Сайт -> Сервер: Авторизация | Request
Сервер --> Сайт: Ключ доступа | Response

Сайт -> Сервер: Получить информацию о пользователе по id | Request
Сервер --> Сайт: Информация о пользователе по id | Response
@enduml


Больше примеров: здесь
PlantUML Online: здесь

#getanalyst_UML
👍10
Диаграммы активностей (Activity Diagram) и последовательности (Sequence Diagram) - основные диаграммы, которыми я пользуюсь.

💥 Activity Diagram - это блок-схема, которая показывает, как поток от одной деятельности переходит к другой. Здесь мы рисуем алгоритм действий системы или взаимодействия нескольких систем.
Например, как будет себя вести пользователь по шагам в интернет-магазине при покупке. Важно пофантазировать и подумать, какие ходы он может предпринять, в зависимости от статуса (оптовик/не оптовик, зарегистрирован или нет, есть дисконт-карта или нет).
Пример на картинке - диаграмма с заказом (рус).

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

Работая с UML, вы можете задаться вопросом: зачем столько видов диаграмм?
При проектировании участвует большое количество лиц: аналитики, тестировщики, архитекторы, программисты и т.д. Каждому важна детализация описания системы на определенном уровне: код, объекты данных, алгоритмы и поведение пользователей, взаимодейстие приложений при интеграциях, компоненты системы.

За счёт UML схем визуально разобраться с требованиями бывает гораздо проще. Благодаря чему команда выполняет задачу быстрее и продуктивнее. Но это не всегда так. Когда UML-схема получается слишком громоздкая, то лучше убрать ее и оставить только текстовое описание.

Из моего опыта могу сделать следующий вывод: в требования и документацию надо добавлять либо только UML, либо только текстовое описание алгоритма. Если добавлять и то, и другое, то вероятность рассинхрона 100%, когда появятся уточнения по работе алгоритма. Не надо дублировать одно и то же (если правила компании разрешают обходиться без дублирования информации).

#getanalyst_UML
👍11
Какими UML-диаграммами вы пользуетесь у себя на проектах? 🤔
Пишите в комментариях, насколько они помогают или мешают в работе
Anonymous Poll
63%
Последовательности (Sequence)
26%
Активности (Activity)
22%
Классов
7%
Объектов
8%
Прецедентов
3%
Другие (в комментарии)
11%
Не пользуемся
19%
Я только учусь - смотреть ответы
👍2
Недавно я летала в Маями на бизнес-конференцию. Подобные мероприятия нужны мне, чтобы знакомиться с новыми людьми в США, рассказывать о своих компаниях, искать клиентов, делиться опытом в сфере IT и онлайн-образования.

Послушать спикеров - не главное. Я ехала за нетворкингом с людьми, кто сделал компании с оборотами на миллионы $, с владельцами VC (venture capital) о принципах отбора стартапов. Мне интересен их опыт.

С таким же желанием я зашла на обучение бизнесу (MBA). Мне нужено постоянно общаться с людьми, кто профессиональнее и опытнее меня, чтобы были примеры и понятные направления - куда и как расти. Мне важно услышать и проанализировать все их мысли: от рабочих процессов до организации свободного времени.

Итог:
📌 Послушала 7 докладов
📌 Познакомилась со 100+ предпринимателями

И вот о чем я задумалась. Предприниматели в основном растут только за счет крутого окружения. Почему нетворкинг это супер-важная часть только в бизнесе? Это может работать и у нас - IT-специалистов.
🔥9👍2❤‍🔥1
НЕТВОРКИНГ

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

Это формат нетворкинга, где я много рассказываю, прошу практиковаться сразу, и развиваю ваши скилы. Я выступаю как опытный специалист, который протягивает руку и ведет наверх, к профессиональному росту.

После очередной бизнес-конференции, где я была с целью своего профессионального развития в бизнесе, я поняла:
Нетворкинг для аналитиков и менеджеров IT-проектов - моя задача 👥

Миссия проекта GetAnalyst:
Мне важно растить специалистов, которые будут создавать качественные и надежные IT-продукты для бизнеса.

Когда я осознала, что могу перенести свой опыт роста в бизнесе на GetAnalyst, я почувствовала легкость и начала улыбаться. Это было ощущение абсолютного кайфа, когда я осознала, что могу объединять людей, которые помогут друг-другу расти!

Наше сообщество аналитиков уже есть. Мы больше года здесь! Нас уже больше 1500 человек! И все мы со своим уникальным бэкграундом!

Я мечтаю создать комьюнити №1 в сфере IT, где каждый сможет поделиться своим опытом и внести вклад в развитие коллег!


Мне будет нужна ваша помощь. Без вас ничего не получится. Ставим 👍, кто готов делиться опытом и ♥️, кто нуждается в поддержке!
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍16
Мечта стать программистом появилась в 14 лет. И по стечению обстоятельств - поступление на кафедру системного анализа в университете, она преобразилась в желание стать системным аналитиком.

Системный аналитик - не конкурентная и легкая для входа в IT профессия. Достаточно небольшого набора тех скилов и опыта, которым я делюсь в GetAnalyst, чтобы вам было понятно как работать в реальных условиях.

Сегодня я могу расти в любом направлении, пользуясь опытом, который я получила взаимодействуя с бизнес-заказчиками и разработчиками. Я выбрала развитие в сторону создания своей IT-компании по разработке и внедрению ПО.

Я продолжаю заниматься системным анализом: пишу ТЗ, ставлю задачи разработчикам и общаюсь с ними. Посещаю профессиональные конференции. Беру новые проекты и консультирую учеников по их проектам. Развиваю технические скилы по проектированию архитектуры, и бизнесовые по управлению командой.

Возможность работать удаленно с 2019 года сделала мою жизнь одним большим путешествием! 20+ стран в копилке, учеба за границей и переезд в другую страну. Благодаря IT-профессии аналитика я смогла круто построить свою жизнь и с 20 лет решать бытоваые проблемы "Австрия или Испания в следующие выходные?", а не "Магнит или Пятерочка?".

Моя профессия - лучшее, что произошло со мной! ♥️ Я не работала ни дня! Для меня системный анализ - это творчество, возможность генерировать идеи и реализовывать их в виде программных систем!
16🔥5👍3👏1
Друзья, у нас есть чат https://t.me/getanalystchat

Давайте знакомиться! Используйте эти посты, чтобы найти друг-друга!

Пример поста-знакомства ниже. Копируем и шаблон и наполняем под себя👇

------------------
#getanalyst_знакомство

Имя:
Катя Ананьева

Должность:
Ведущий системный аналитик, технический руководитель проектов

Предметные области:
Транспорт
Медицина
Банки
CRM
Страхование
Производство
Торговля
Интернет-магазины
...

Могу помочь:
UML, BPMN, БД. SQL, PostgreSQL, Figma, Интеграции, REST API, Postman, сбор требований, Мобильные приложения, SOAP API, SOAP UI, XML, JSON, очереди сообщений, Kafka, RabbitMQ, Микросервисная архитектура, подготовка к собеседованию
...

Нужна помощь:
Ищу младшего аналитика в команду
Хочу научиться работать на проектах с нуля
Хочу освоить REST API
...
👍8
Напоминаю, что для начинающих аналитиков открыт канал, в котором я погружаю в профессию с нуля и помогаю переходить в системный анализ тестировщикам, техническим писателям, сотрудникам тех. поддержики, бизнес-аналитикам.

Можно заглянуть и забрать подборку полезных книг для начинающих системных аналитиков😉
👍3