🍀BitBitGo🍀 Системный Анализ
3.22K subscribers
217 photos
153 videos
112 links
Курс «Системный анализ»
https://bitbitgo.by/
Пишем про системный анализ.
Поможем стартануть в карьере IT. Присоединяйся!
Download Telegram
⚠️ Для удобства и навигации постов в канале мы публикуем темы с тегами:

🏗 Архитектура ПО #ARCHITECTURE
Темы по шаблонам и типам архитектуры

🔗 Интеграция #INTEGRATION
Темы по описанию типов интеграций, протоколов, DevOps

📐 UML #UML
Темы по UML диаграммам, их применению

📊 BPMN #BPMN
Темы по BPMN диаграммам, их применению

🗄 Базы данных #DBMS
Темы, охватывающие проектирование баз данных, SQL и NoSQL

🛡 Кибербезопасность #SECURITY
Темы по сбору требований по информационной безопасности ИТ-систем

🛠 Проектирование ИТ-систем #SYSTEMDESIGN
Темы и кейсы по проектированию информационных систем

📜 Требования #REQUIREMENTS
Темы, которые охватывают типы требований, техники, стандарты

🔍 Тестирование #TESTING
Темы по тестированию ПО, роль аналитика в тестировании

🎓 Подготовка к собеседованию #INTERVIEW
Разбор вопросов и задач, как проходит собеседование

💼 Интеграционная шина и брокеры сообщений #BROKER
Темы по интеграционной шине и брокерам сообщений

📚 Прочее #OTHER
Все темы технические темы, что не вошли в предыдущие разделы
👍6🔥2👌2
🚀 HTTP/1, HTTP/2 и HTTP/3 — просто о главном

🔹 Зачем нужны новые версии HTTP?
Главная причина — скорость!
- Быстрая загрузка страниц
- Меньше задержек при установке соединения
- Эффективный обмен данными между сервисами

Основные проблемы HTTP/1.1:
1. Блокировка соединения (Head-of-Line Blocking) — нужно ждать ответа на текущий запрос, прежде чем отправить следующий.
2. Множественные рукопожатия (Handshake) — для каждого соединения требуется 2-3 этапа согласования.
3. Большие заголовки — много лишних данных в каждом запросе.

🔹 Как HTTP/2 решает эти проблемы?
Параллельные запросы — больше не нужно ждать ответа, чтобы отправить новый запрос в рамках одного соединения.
Одно соединение — вместо нескольких TCP-соединений (как в HTTP/1.1) используется одно мультиплексированное.
Сжатые бинарные заголовки — меньше лишних данных.

Пример:
Раньше (HTTP/1.1):
📦 Запрос 1 → Ожидание → 📦 Ответ 1 → 📦 Запрос 2 → ...

Теперь (HTTP/2):
📦 Запрос 1, 📦 Запрос 2, 📦 Запрос 3 → 📦 Ответ 1, 📦 Ответ 2, 📦 Ответ 3

🔹 Почему появился HTTP/3 (QUIC)?
HTTP/2 исправил блокировку на уровне приложения, но TCP всё ещё требует последовательной доставки пакетов.

Решение:
🚀 Переход на UDP (протокол QUIC) — нет блокировки на транспортном уровне.
⚡️ 1 рукопожатие вместо 2-3 — быстрее установка соединения.
🔐 Встроенное шифрование — безопасность «из коробки».
🔄 Устойчивость к разрывам — если соединение прервалось, не нужно заново проходить handshake.

🔹 Когда что использовать?
- HTTP/1.1 — устарел, но ещё встречается.
- HTTP/2 — стандарт для современных сайтов (быстрее 1.1, поддерживается почти везде).
- HTTP/3 — будущее (ещё не все серверы и клиенты поддерживают, но скорость впечатляет).

💡 Вывод:
- HTTP/2 ускорил веб, избавившись от блокировки запросов.
- HTTP/3 идёт дальше, устраняя недостатки TCP через QUIC.

#INTERVIEW
4🔥2
🎯 Как пройти собеседование на системного аналитика

🔹 Что точно спросят:
– Чем отличается системный аналитик от бизнес-аналитика
– Как ты документируешь требования
– Какие UML- или BPMN-диаграммы умеешь строить
– Уровень знания SQL
– Примеры взаимодействия с разработкой и тестированием
– Какие системы и подходы к интеграции знаешь

🛠 На что обращают внимание:
– Умение мыслить системно: разбивать задачу на части
– Понимание этапов разработки: от идеи до релиза
– Опыт работы с документацией и API
– Как объясняешь сложное простыми словами

📚 Подготовка — must have:
– Повтори UML, BPMN, REST и SOAP
– Вспомни структуру спецификаций (Swagger, JSON-схемы)
– Подготовь рассказ о кейсах: что делал, какие были сложности, как решал
– Проверь SQL: JOIN, оконные функции, подзапросы

#INTERVIEW
🔥7
🔍 Разбор задачи с собеседования: Резервы на складе e-commerce

Проблема:
🛒 Клиенты добавляют товары в корзину → видят наличие → но при оформлении товар уже занят!
📦 На складе резервируется больше товара, чем есть в наличии.

Причина:
• Товар проверяется при добавлении в корзину
• Резервируется только при оформлении заказа
• Между этими этапами — окно для "гонки" ⏱️

Решение 1 — Резервирование при добавлении в корзину:
Товар резервируется сразу при добавлении в корзину
Устанавливаем TTL (15-30 минут)
🔄 Если заказ не оформлен — резерв снимается

Решение 2 — Оптимизация процесса оформления:
• Сразу списывать товар при оформлении
• Или подтверждать резерв и списывать после оплаты

Что проверяют на собеседовании:
🧠 Умение выявлять root cause
📊 Понимание временных окон в процессах
💡 Способность предлагать практичные решения

Вывод: Ключ к решению — минимизировать время между проверкой наличия и резервированием!

#INTERVIEW
🧾 Что входит в Техническое Задание (ТЗ)? Краткий гид
Техническое задание — это основной документ, который описывает, «что» нужно сделать, но не «как». Его структура может меняться, но обычно включает следующие ключевые блоки:

1. 🎯 Введение и Контекст
• Что это: Общая картина проекта.
• Что включает: Описание проблемы, цели проекта, общее видение и границы.

2. 👥 Участники проекта
• Что это: «Кто есть кто» в проекте.
• Что включает: Перечень ключевых сторон (Заказчик, Менеджер, Аналитик) с их ролями.

3. 📚 Глоссарий
• Что это: Словарь терминов.
• Что включает: Определения всех специальных терминов и аббревиатур.

4. ⚙️ Основные требования
• Что это: Сердце ТЗ — описание возможностей системы.
• Что включает:
◦ Функциональность: Что система должна делать.
◦ Ограничения: Чего система делать не должна.
◦ Нефункциональные требования: Производительность, безопасность, надежность.

5. 🏗️ Архитектура и Дизайн
• Что это: «Чертеж» системы.
• Что включает: Описание архитектуры, технологии, ключевые модули.

6. 🔗 Интеграции
• Что это: Связи с внешним миром.
• Что включает: Описание систем для взаимодействия, API, форматы данных.

7. 📖 Документация
• Что это: Инструкции для пользователей.
• Что включает: Перечень документов (например, Руководство пользователя).

8. Контроль и Приёмка
•Что это: Правила сдачи проекта.
•Что включает: Критерии приёмки, тестовые сценарии.

9. 🗓️ План и Этапы
•Что это: Дорожная карта проекта.
•Что включает: Основные этапы разработки и сроки.

10. ⚠️ Риски
•Что это: «План Б» на случай проблем.
•Что включает: Возможные трудности и способы их минимизации.

🌍 Какие бывают стандарты для ТЗ?
Единого шаблона нет, компании часто адаптируют под себя известные стандарты:

1🌐 Международные (ISO, IEEE)
◦Для чего: Строгие и универсальные стандарты для крупных международных проектов.

2🇷🇺 Российские (ГОСТы)
◦ГОСТ 34: Для автоматизированных систем управления (АСУ). Классика для госпроектов.
◦ГОСТ 19: Для программной документации.
◦Для чего: Часто обязательны для госзаказчиков.

3📚 Отраслевые и Авторские (BABOK, Вигерс, RUP)
◦Для чего: Своды знаний и лучших практик для гибких процессов в IT-компаниях.

Итог: Структура ТЗ — это checklist, который помогает ничего не упустить. Стандарт — это 🗣️ язык, на котором это ТЗ пишется.

#INTERVIEW
🔥21
🎯 Системный аналитик на собеседовании: Разбор реальных кейсов и вопросов

Привет, коллеги! 👋 Подготовка к собеседованию на позицию системного аналитика — это как сборка пазла: нужно знать и теорию, и как ее применить на практике. Давайте разберем ключевые блоки и реальные примеры! 🔍

🧩 1. Вопросы о роли и процессе

Вопрос: «Опишите ваш идеальный процесс работы с требованиями от заказчика до реализации»

Что хотят услышать:

Выявление потребностей: Интервью, воркшопы, наблюдение. 🗣
Анализ и документирование: User Stories, Use Cases, UML/BPMN. 📝
Приоритизация: MoSCoW или RICE. 📊
Валидация: Прототипы, согласование со стейкхолдерами. ✔️
Поддержка разработки: Ответы на вопросы, уточнения. 🤝
Приемка: Проверка по критериям приемки (Acceptance Criteria). 🎯
💡 Пример: «Для нового модуля оплаты я бы сначала провел интервью с финансовым отделом, смоделировал процесс в BPMN, разбил на User Stories, приоритизировал с продукт-менеджером и создал прототип экранов для валидации».

🛠 2. Технические и архитектурные вопросы

Вопрос: «Как вы будете проектировать интеграцию между нашей CRM и новой email-рассылкой?»

Структура ответа:

Цель: Зачем интегрировать? (Автоматизация триггерных писем). ✉️
Данные: Что передавать? (ID клиента, события, шаблоны). 📦
Способ: Синхронно (REST API) или асинхронно (очередь сообщений)? Выбор зависит от требований к скорости и надежности. ⚡️
Безопасность: API-ключи, HTTPS. 🔐
Обработка ошибок: Повторные попытки, Dead Letter Queue. 🚨
💡 Пример ответа: «Я бы предложил асинхронную интеграцию через брокер сообщений (Kafka). CRM публикует событие «покупка завершена», а сервис рассылки подписывается на него и отправляет письмо. Это развязывает системы и повышает отказоустойчивость».

📊 3. Работа с данными и SQL

Вопрос: «Пользователи жалуются на медленную загрузку отчетов. С чего начнете исследование?»

Ваши действия:

Уточнить: Какие отчеты, для каких ролей, объем данных? 📈
Логи: Смотрю время выполнения запросов в БД. 🕒
Анализ запросов: Проверяю сложные SQL-запросы на наличие JOIN по неиндексированным полям, SELECT *. 🐌
Гипотезы: Нехватка индексов, необходимость денормализации или кеширования. 💡
Предложение: «Добавить индексы на поля, используемые в WHERE и JOIN, или внедрить предрасчет агрегаций на ночь».
🧪 4. Поведенческие вопросы (Soft Skills)

Вопрос: «Приведите пример, когда ваше требование было неверно истолковано командой разработки. Что вы сделали?»

Формула ответа STAR:

S (Ситуация): «В проекте Х было требование о выгрузке данных в Excel». 📤
T (Задача): «Разработчики сделали выгрузку всего объема данных без пагинации, что приводило к падению системы». 💥
A (Действие): «Я организовал встречу, наглядно показал проблему на диаграмме последовательности, совместно разработали уточненные критерии приемки: «Выгрузка должна быть чанкована по 10 000 записей». 🤝
R (Результат): «Доработали функционал, нагрузка снизилась, клиенты довольны».
🚀 5. Вопросы на логику и проектирование

Вопрос: «Опишите, как бы вы спроектировали систему бронирования столиков в ресторане (на высоком уровне)»

Ключевые компоненты:

Ядро: База данных столиков, слотов времени, броней. 🗄
Интерфейсы: Мобильное приложение для клиентов, веб-админка для ресторана. 📱
Бизнес-правила: Проверка доступности, отмена, уведомления (SMS/email). ⚙️
Интеграции: С картами оплаты, смс-шлюзом. 🔗
Риски: Двойное бронирование (решение: транзакции/блокировки). 🛡
Главный совет: Рисуйте схему на доске или в уме! «Я бы выделил модуль управления столиками, модуль бронирования и модуль уведомлений...»

💎 Итоговые советы:

Задавайте вопросы: Уточняйте контекст задачи. «А для кого этот отчет? Какая основная цель?»
Говорите на языке диаграмм: Упомяните, что для сложных процессов используете UML/BPMN. 📐
Будьте честны: Если не знаете — скажите, но предложите, как бы нашли ответ. «С этой технологией не сталкивался, но сначала изучил бы документацию и посмотрел кейсы». 🤷‍♂️➡️🔍

#INTERVIEW
👍1🔥1
❗️Фундамент проекта: строим из бетона 🏗 или из песка? 🏖
Всё решают грамотные требования.

Привет, системные мыслители! 👋

Сегодня говорим о ФУНДАМЕНТЕ 🏛, на котором стоит ВЕСЬ проект. О том, что может стать ясной дорогой к успеху 🏆 или… минным полем 💣 для провала.
Речь, конечно, о ТРЕБОВАНИЯХ! 📋⚡️🔥
Правильные требования — это не просто список «хотелок» ✍️. Это четкий, измеримый и всеми понятный образ будущего продукта 🎯. Давайте разложим эту магию на атомы! 🔬➡️🧩

🤔💡 Что такое «хорошее требование»?

Оно должно быть SMART 🎯, но по-особенному:

S - Конкретным 🎯: Не «удобный интерфейс» 😌, а «кнопка «Сохранить» находится в правом верхнем углу формы» 📌➡️💾.
M - Измеримым 📏: Не «быстрая загрузка» ⚡️, а «время полной загрузки главной страницы — не более 2 секунд» ⏱️.
A - Достижимым : С учетом технологий ⚙️, сроков 📅 и бюджета 💰.
R - Непротиворечивым 🤝: Не должно конфликтовать с другими требованиями 🚫⚔️.
T - Проверяемым (Тестируемым) 🧪: Чтобы QA-инженер 👨‍🔬 мог однозначно сказать: «Да, выполнено» 👍 или «Нет» 👎.
🗂🎂 Слоёвка, как у торта: Иерархия требований

Чтобы не запутаться, важно разделять их по уровням:

Бизнес-требования (Business Requirements) 🏢💰➡️🎯
«Зачем мы это делаем?» Цели и выгоды компании.

Пример: «Увеличить конверсию на сайте на 15% к концу года 📈➡️🎄».
Пользовательские требования (User Needs) 👥❤️➡️🤔
«Что пользователь должен уметь делать?» Задачи, которые пользователь решает.

Пример: «Как пользователь, я хочу восстановить пароль через email ✉️, чтобы вернуться в аккаунт, если забыл его 🤯».

Функциональные требования (Functional Requirements) ⚙️🔄➡️🤖

«Как ИМЕННО система должна это делать?» Конкретное поведение.
Пример: «Система отправляет на email уникальную ссылку 🔗 со сроком жизни 1 час 🕐».

Нефункциональные требования (NFR) 🏗🛡➡️🚀
«Какими КАЧЕСТВАМИ должна обладать система?» Это её суперсилы 💪:
Производительность 🚀: «1000 пользователей одновременно».
Безопасность 🛡: «Пароли хранятся в хэшированном виде 🔐».
Удобство 😌: «Первый заказ за 3 минуты ⏱️».
Надёжность 🤖: «Доступность 99.5% ».
💥🚨 Типичные грабли (и как на них НЕ наступить):

«Синдром телепата» 🔮🧠: Заказчик думает, что вы читаете его мысли.
Решение: Всегда уточняйте , переформулируйте 🔄 и фиксируйте письменно 📝✍️!
«Это же очевидно!» 🤷‍♂️👀 — фраза-убийца 💀.
Решение: Декомпозируйте ➡️🧩 до уровня, понятного разработчику 👨‍💻 и тестировщику 👩‍🔬.

«Поздно собрали NFR» 🚨🔥: Когда про производительность вспоминают на этапе тестирования.
Решение: Спрашивайте про NFR СРАЗУ и так же тщательно их документируйте 📋.
🛠🧰 Инструментарий и методы:

Методы сбора: Интервью 🎤, воркшопы 👨‍👩‍👧‍👦💡, наблюдение 👀, опросы 📊.
Форматы документирования:
User Stories 📖👤: «Как <роль>, я хочу <цель>, чтобы <выгода>».
Use Cases 🎬📽: Детальные сценарии взаимодействия.

Таблицы требований 📊: ID, Тип, Приоритет 🔝, Описание, Критерий приемки 🎯.

Макеты и прототипы 🎨✏️: Лучшая визуализация!

🏁 Итог: Работа с требованиями — это искусство баланса ⚖️ между желаниями бизнеса 💼, потребностями пользователей ❤️ и возможностями команды 🤝.
Ваша задача — быть переводчиком 🗣🔁 и архитектором 🏗 этого баланса!

#INTERVIEW #REQUIREMENTS
Please open Telegram to view this post
VIEW IN TELEGRAM
🎓 СОБЕСЕДОВАНИЕ НА АНАЛИТИКА: РАЗБИРАЕМ РЕАЛЬНЫЕ КЕЙСЫ И ЛОВУШКИ
Привет, будущие и действующие аналитики! 👋 Сегодня разберем тему #INTERVIEW на реальных примерах. Не просто вопросы-ответы, а разбор типичных ошибок и того, что ждут на самом деле. Погнали! 🚀

📌 Кейс 1: «А мы так в прошлом проекте делали...»

Ситуация на собесе: Кандидата спрашивают: «Как вы будете собирать требования на новый модуль “Личный кабинет” для банковского приложения?» 💳
Типичный ответ новичка: «Ну, я бы собрал всех стейкхолдеров в одну комнату, провел воркшоп, записал user stories и передал разработчикам».
Почему это провал? Слишком абстрактно и игнорирует контекст банковской сферы!
Что ждут Senior-интервьюеры? Конкретику с учётом отраслевых требований:
*«Сначала изучу нормативку: 115-ФЗ, Положение Банка России № 762-П — это даст обязательные требования к данным и безопасности»* 📜
«Выявлю категории пользователей: клиент физлицо, сотрудник банка, аудитор — у каждого свои сценарии и ограничения» 👥
«Предложу прототипирование ключевых экранов с фокус-группой, потому что в финансах ошибки интерфейса = потеря денег» 💸

Вывод: Показывайте, что вы думаете о предметной области, а не просто применяете шаблонные техники.

📌 Кейс 2: «Вопрос на миллион» — просим оценить сложность

Вопрос: «Оцените, сколько времени нужно, чтобы интеграцировать наше приложение с “Госуслугами” для верификации пользователей?» ⏱️
Ошибка: Назвать срок сразу: «Месяц-два». Это красная тряпка для опытного тимлида.

Правильный подход — задать уточняющие вопросы:

«Какой именно сценарий нужен? Простая авторизация через ЕСИА или выгрузка данных из профиля?» 🔍
«Есть ли у команды опыт работы с API “Госуслуг”? Нужно ли получать аккредитацию?» 🏛
«Каковы текущие нагрузки на команду? Есть ли выделенный DevOps для настройки контуров?» 👨‍💻
И только потом: *«При положительных ответах на всё выше — 3-4 спринта на первый рабочий прототип, плюс месяц на согласования и сертификацию»*.

Фишка: Вам платят за умение снижать риски, а не за быстрые ответы. Умение задавать вопросы ценится выше, чем знание всех ответов. 🧠

📌 Кейс 3: Белое vs. Чёрное — стресс-кейс

Вопрос: «Пользователь жалуется: “В мобильном приложении не отображается его заказ”. Ваши действия?» 📱
Слабый ответ: «Проверю логи, передам разработчикам...» — слишком пассивно.
Сильный (системный) ответ — по шагам:

Локализация: «Уточню у пользователя: не отображается только его заказ или всё? На каком экране? Какая ОС и версия приложения?» 📍

Воспроизведение: «Попробую воспроизвести на тестовом стенде с похожими данными» 🔄
Анализ: «Проверю:
Сетевые ли запросы к API падают? (Fiddler/Charles)
Есть ли ошибки в логах мобильной аналитики? (Firebase)
Не изменилась ли структура ответа бэкенда?» 🕵️‍♂️

Коммуникация: «Если проблема массовая — подготовлю сообщение для поддержки и включусь в созвон с разработчиками. Если единичная — запрошу детальные логи по userId» 📢

Это показывает: Методичность, понимание стека технологий и клиентоориентированность.

🎯 ТОП-5 советов для вашего следующего собеса:

Говорите вслух — интервьюер должен видеть ход ваших мыслей. 🗣
Спрашивайте про контекст — уточняйте бизнес-цель, ограничения, состав команды.
Рисуйте! Схемы, блок-схемы, таблицы — это ваше главное оружие. ✏️
Признавайте пробелы — «Я не сталкивался с BPMN, но понимаю, что это для процессов, и готов быстро изучить» — это сильнее, чем попытка выкрутиться. 👍
Готовьте вопросы о компании — «Какая biggest pain point в текущих процессах анализа?» покажет ваш проактивный настрой. 💼
Помните: Собеседование — это продажа своих навыков решения проблем, а не просто пересказ резюме. Удачи! 🍀

#INTERVIEW
Please open Telegram to view this post
VIEW IN TELEGRAM