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

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

РКН №5013005196
Download Telegram
🔮 Доступ к обучению открыт на 4 дня: Интеграции по REST, GraphQL и WebSocket 🔮

Сегодня всем зарегистрированным отправили письмо с доступом на почту 📩

Если узнали о занятии только сейчас, то подключайтесь:

🔮 Интеграции по REST, GraphQL и WebSocket: от Postman до требований в Confluence
🗓 Доступ 27–30 сентября [сб-вт]
🔗 Подробности и регистрация


В результате:
Освоите порядок работы с интеграциями и научитесь быстро разбираться в любом API
Попрактикуетесь в Postman: отправите запросы, проанализируете ответы и составите сценарии тестирования
Познакомитесь с особенностями GraphQL и WebSocket
Поймёте, какие диаграммы нужны при проектировании интеграций
Получите шаблон постановки задачи в Confluence и разберёте типичные ошибки


Не упускайте шанс прокачать свои навыки и сделать шаг в карьере уже сейчас.

Продуктивных выходных! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
15❤‍🔥2
🚘 Беспилотные авто в Сан-Франциско vs в Остине 🚘

На прошлой неделе я была в Сан-Франциско - в городе, где началась история беспилотных такси Waymo.

А несколькими неделями ранее я была в Остине, Техас, где впервые попробовала прокатиться на беспилотнике.

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


Делюсь наблюдениями 👇


👉 Приложение

🔹 Остин
Там Waymo работает внутри приложения Uber - такси с обычными водителями.
Когда вызываешь Uber, можно только отметить «я бы хотела Waymo».
Перед этим надо поставить кучу электронных подписей, что я согласна.
И это скорее лотерея. Шанс получить именно беспилотник был небольшой.
Но у меня получилось в последний вечер!

🔹 Сан-Франциско
Есть отдельное приложение Waymo.
Если заказываешь машину, то действительно приезжает беспилотник. Без «а вдруг повезёт».


👉 Цены: дешевле или дороже?

🔹 В Остине - одинаково.
Там мы заказываем беспилотное такси в формате лотореи.

🔹 В Сан-Франциско - вечером, в час-пик, я пробовала заказать Waymo.
Ожидание: 15 минут
Цена: $42 за 20 минут пути

Для сравнения, в Uber та же поездка стоила $28 с ожиданием 3 минуты 🧐

❗️Беспилотник оказался дороже.
Это было неожиданно, учитывая, что часто мы ждём, что «роботы дешевле людей».

Но потом, когда я заказала Waymo днём, без часа пик, то
Ожидание: 2 минуты
Цена: $13 за 14 минут пути

При этом обычный Uber в это время был по цене 14$.


👉 Ощущения от поездки
Поначалу кажется, что это страшно.
Но когда смотришь на количество камер и то, насколько умно машина реагирует на события вокруг, становится ясно: это не просто «как человек», а во многих ситуациях даже лучше.
Waymo реально кажется очень безопасным.
И как в спокойном Остине, так и в сумасшедшем Сан-Франциско, машины вели себя очень аккуратно.

❗️ Посмотрите видео и задумайтесь о количестве датчиков и сенсоров, которые сканируют обстановку вокруг.



Будущее наступило!
И классно быть не только пользователем таких технологий, но и понимать, что стоит «под капотом» 🤩
26🔥11👍9❤‍🔥32👏1
Кроны, шедулеры и таймеры: что это и когда применять | Отложенные задачи

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



📌 Крон (cron)
Это механизм для запуска задач по расписанию в операционных системах.

Примеры:
+ Каждый понедельник очищать временные данные из БД
+ Каждую среду в 03:00 Мск собирать информацию о предстоящих мероприятиях из внешней системы и формировать рассылку для пользователей
+ В банках: формирование ежедневных отчётов по транзакциям в 10:00 и рассылка ответственным
+ В системах аналитики: пересчёт метрик каждые 5 минут.


Технически cron-выражение описывает календарное расписание (минуты, часы, дни, месяцы, дни недели). Некоторые движки cron позволяют указывать секунды, но не во всех реализациях.

Cron как служба ОС запускает внешние скрипты/программы, а не внутренние методы приложения в отличие от встроенных шедулеров.



📌 Шедулер (scheduler)
Это любой механизм, который умеет запускать задачи по расписанию. Более общий термин в отличие от крона.

Шедулер может быть встроенным в приложение или инфраструктурным.

▫️ Cron — это конкретная реализация шедулера на уровне ОС.
▫️ В приложениях шедулеры встроены как часть фреймворков и позволяют описывать расписания внутри системы.

Примеры:

+ в корпоративных системах: Quartz Scheduler (Java) или Hangfire (.NET) запускают задачи внутри приложений

+ в микросервисах: инфраструктурный шедулер Kubernetes CronJob — запускает контейнеры по расписанию


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



📌 Таймер (относительный запуск - delay, timer)
Иногда нужно выполнить задачу не по календарю, а через определённое время после события. Это и есть delay (отложенный запуск) или таймер.

Примеры:
+ Через 15 минут после регистрации отправить напоминание, если пользователь не подтвердил email
+ Повторить запрос через 30 секунд, если система недоступна
+ Отправить уведомление через час после бронирования

Как реализуется:

▫️ Через оперативную память приложения - проще, но ненадёжно, т.к. задача пропадёт при перезапуске.

▫️ Через очередь сообщений - RabbitMQ с плагином для отложенных сообщений, Redis-очереди или др

▫️ Через базу данных - таблица заданий с колонкой execute_at, воркер регулярно проверяет и выполняет



Очереди (queue)
Для задач с большими объёмами «одноразовых» запусков лучше использовать очереди.

Когда выбирать очереди:
▫️ очень много динамических одноразовых задач «через N» (email-напоминания, повторные попытки запросов),
▫️ нужны горизонтальное масштабирование и устойчивость к сбоям,
▫️ гарантии обработки задач важнее точности расписания.

Пример:
Пользователь регистрируется на сайт. Нужно через 30 минут, если он не подтвердил email, отправить ему напоминание.

➡️ При этом регистрируются тысячи пользователей в час.

Решение через очередь с delay:

1. При регистрации создаётся сообщение с инструкцией «отправить напоминание» и параметром задержки delay = 30 минут.

2. Сообщение кладётся в очередь (например, RabbitMQ с плагином Delayed Message Exchange или TTL + DLX).
Важно: RabbitMQ не идеален для очень долгих задержек (дни, недели) — его основная область — секунды/минуты/часы.

3. Через 30 минут брокер отпустит сообщение в потребительскую очередь - т.е. в оперативную обработку.



👉 Правила выбора:

Регулярные задачи по календарю (например, ежедневно в 10:00)
= cron / scheduler

Отложенные одноразовые задачи (выполнить один раз через N времени от текущего момента)
= таймер / delay

Массовые задачи - с большим объемом однотипных действий
= очереди

Подходы могут комбинироваться


Работа с отложенными задачами встречается часто, и термины в разговоре с программистами теперь будут до конца понятны 🤝

#ИнтеграцииGA #АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
37❤‍🔥9🔥7👍6
⌛️📝 Чек-лист требований при работе с отложенными задачами: cron, scheduler, timer/delay, очереди 📝⌛️

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

❗️ Если их не прописать в требованиях — разработчики могут реализовать «как получится», и система будет работать нестабильно.


Ключевые нюансы 👇

🔁 Анти-дубликаты
🛡️ Идемпотентность
🌍 Часовые пояса
Переходы времени (DST)
📊 Мониторинг и логирование
🗂 Очереди ошибок (DLQ)
📈 Масштабируемость
🗃 Где хранится расписание
💾 Таймеры через БД


👉 Подробности в картинках к посту 🖼


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

Тогда разработчики смогут реализовать систему так, чтобы она работала надёжно и предсказуемо 🙌


#ИнтеграцииGA #АрхитектураGA
26👍13🔥9