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
Есть три ступени владения знаниями:
1. Только учусь. Все в теории. Могу объяснить простыми словами на примерах
2. Все знаю, есть опыт. Объяснить могу. Но вы должны понимать - это сложно
3. Все знаю, много опыта. Могу объяснить простыми словами на примерах

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

Никогда я не любила занудство. И в какой-то момент нашла способ, как казалось бы сложный системный анализ сделать простым и доступным для всех! Смотрите как Ошибки проектирования можно избежать
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Практика без воды с максимально глубоким погружением в детали - это то, что вы забираете, работая вместе со мной.

💥 В течение 6 недель мы встречаемся в формате онлайн
💥 Включаете микрофон и задаете свой вопрос сразу, во время занятия
💥 Обсуждаем вопросы не только по курсу, но и по вашим проектам, либо задачам с собеседований, которые не дались
💥 В начале каждого вебинара обсуждаем ДЗ, и встречаемся на отдельных эфирах по разбору ДЗ

Я допускала ошибки, пока училась. И пока прокачивала скилы в разных проектах. Самое ценное, что я могу вам передать - свой опыт. Зная рабочие подходы, вы сможете не допускать моих ошибок и точно будете знать, как подойти к задаче на интеграции с разных сторон
👍4
Осталось всего 4 места с практикой на курсе Интеграции, который стартует уже через 2 дня!

Я очень рада, что к программе подключились мои ученики, которые уже проходили другие программы GetAnalyst - БД, Разработка требований (системный анализ с 0 до опыта работы на проекте)!

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

P.S. В пятницу завершила трехмесячный поток по системному анализу с нуля. И один из самых крутых отзывов - новые навыки уже применятся на практике🔥
Так что переключаю фокус на новый поток, и как всегда будем осваивать и внедрять техники системного анализа для интеграций сразу на практике!
Провела два вебинара для вас в костюме лисы 🦊

Теперь, когда будете вспоминать подходы к проектированию интеграций, как работать с Postman и Swagger, то у вас будет 100% ассоциация самой важной теории и практики с лисьими ушами. Да? 👍

P.S. Сегодня будут повторы, не пропускайте
🔥14😁3👍2👏1
❗️До начала вебинара 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