TGViewer
Channel Public Channel
BA & SA | 10000 Interview questions

BA & SA | 10000 Interview questions

@systemanalystinterview

Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Subscribers
10.3K
Photos
194
Videos
14
Links
369

Showing posts older than #11847 · Back to latest

Older Posts 20 shown
Post #11846 287
№4813 категория вопросов: #ARCHITECTURE
Post #11845 331
☀Объяснение:

Почему партиционирование не решает
Партиционирование по дате уменьшит объём сканирования, если в 
WHERE есть дата, но здесь её нет – придётся сканировать все партиции.

Материализованное представление (MV)

MV хранит предрассчитанный результат запроса: 
SELECT client_id, SUM(amount) as total FROM orders GROUP BY client_id.
Занимает места ~ (кол-во клиентов) × (несколько байт).
Обновляется инкрементально после каждого изменения в 
orders или по расписанию.
Запрос к MV вместо основной таблицы выполняется за миллисекунды (читает всего N строк).

В требованиях нужно указать:

«Для отчёта "топ клиентов" использовать материализованное представление 
client_totals».
«Обновлять представление раз в час (допустима задержка)».
«При изменении данных (INSERT/UPDATE) в 
orders запускать фоновую задачу пересчёта».

Реальный пример
В CRM-системе отчёт «крупнейшие покупатели» грузился 30 секунд. После создания MV с ежечасным обновлением время упало до 0.2 секунды.
Post #11843 301
№4812 категория вопросов: #DBMS
Post #11841 344
☀Объяснение:

Проблема

Письма клиентам (со сбросом пароля, подтверждением заказа) не должны дублироваться. Но все внешние сервисы могут выдавать временные ошибки 5xx, и клиент, повторив запрос, рискует получить два письма.
Решение – идемпотентность на стороне получателя
В запросе на отправку письма нужно передавать уникальный идентификатор (например, 
message_id = UUID, связанный с заказом или пользователем). Почтовый сервис должен хранить уже обработанные ID (хотя бы в течение суток) и при повторном запросе с тем же ID возвращать успех, не отправляя письмо повторно.

Детали в требованиях

«Перед отправкой письма система должна генерировать уникальный 
message_id (например, order_id + timestamp). Передавать его в заголовке или теле запроса».
«Email-сервис должен реализовать проверку идемпотентности: если запрос с таким 
message_id уже обрабатывался, вернуть 200 OK без повторной отправки».
«Хранить ID не менее 24 часов для защиты от коллизий при сетевых задержках».
Почему не подходят другие варианты

A (не повторять) – письма могут теряться из-за сетевого сбоя. Надёжность упадёт.
C (увеличить таймаут) – не решает дублирование при повторе (пользователь нажал «отправить» дважды).
D (перестать пользоваться) – нереалистично.

Реальный кейс

Банк отправлял SMS с одноразовым кодом. Из-за ошибки в биллинге при повторе отправлялось две SMS. Клиенты путали код. После внедрения 
message_id дубликаты прекратились.
Post #11839 309
№4811 категория вопросов: #INTEGRATION
Post #11838 383
☀Объяснение:

Почему это реальный кейс
Каждый спринт разработчики сталкиваются с дилеммой: баг фиксить или фичу делать. Баг теряет 5% заказов — это реальные деньги здесь и сейчас. Фича даст +10% продаж, но не сразу и с риском. Без аналитика команда может выбрать неоптимально.

Что делает хороший аналитик
Собирает цифры:
Потери от бага = 5% от текущей выручки (например, 1 млн руб./день).
Ожидаемый доход от фичи = 10% прироста, но после внедрения (через 3 недели).
Показывает бизнесу. Уточняет, можно ли отложить баг на час (неделю) – обычно нельзя, так как потери растут. Затем организует встречу со стейкхолдерами (владельцем продукта, маркетингом, поддержкой) и вместе определяют приоритет по бизнес-ценности. Возможные варианты:
Сначала фикс бага (1 неделя), затем MVP фичи (2 недели).
Перенести фичу на следующий спринт, но получить план компенсации (скидка на доставку).
Важно зафиксировать решение в протоколе, чтобы потом не было споров. Аналитик не должен выбирать сам — он фасилитатор.
Что будет, если выбрать A (фичу) без согласования
Бизнес потеряет 5% заказов за 3 недели; через месяц фича может не окупить потерь.
Что будет, если B (сделать всё, сократив тестирование)
Выпустите баг ещё больше, либо фича окажется с дефектами.

Реальный пример
В Delivery Club аналогичный конфликт решили взвешиванием: баг с потерей заказов — must have, новая фича — could have. Бизнес согласился отложить фичу.
  • 🔥 1
Post #11835 364
№4810 категория вопросов: #REQUIREMENTS
Post #11834 406
⁉️ Устал искать интересные каналы про Искусственный интеллект?

📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ

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

😏 ЗАБИРАЙ ПАПКУ ТУТ

⏰ Папка действует 72 часа.

🤩 Организаторы: Green.Papka
Post #11832 333
☀Объяснение:

Основной принцип
В распределённых системах нельзя одновременно обновить все сервисы. Нужно делать обратно-совместимые изменения (additive changes). То есть сначала добавить новое поле в API, не удаляя старое. Старые клиенты продолжают работать. Затем обновить потребителей, чтобы они начали использовать новое поле. И только когда все потребители перешли на новую версию, можно удалить старое поле (ломающее изменение).

Как избежать простоя

Фаза 1: добавить новый параметр в запрос (опционально). Старый сервис его игнорирует.
Фаза 2: обновить все вызывающие сервисы, чтобы они передавали новый параметр.
Фаза 3: изменить логику сервиса-приёмника, чтобы он требовал новый параметр.
На каждом этапе система продолжает работать.

Почему A не подходит
Остановка всех сервисов — это downtime, которого можно избежать.

C и D — нереалистичны.

Реальный инструмент
Feature flags, versioned APIs, graceful shutdown. Аналитик должен в требованиях указывать, что изменения API должны быть обратно совместимыми или идти через версионирование.
Post #11830 306
№4809 категория вопросов: #INTEGRATION
Post #11828 357
☀Объяснение:

Проблема
Требование «предотвращать отгрузку, если нет в наличии» слишком узкое. Оно описывает только финальную проверку. Но товар может быть продан (через другой склад или онлайн) после того, как его зарезервировали, но до отгрузки. В реальности нужна блокировка товара на время процесса: как только клиент добавил товар в корзину или создал заказ, товар должен быть зарезервирован на складе (уменьшать доступное количество). И только потом отгрузка проверяет уже зарезервированный товар.

Улучшенное требование

«При создании заказа система должна зарезервировать товар на складе, уменьшив доступный остаток».
«Если резервирование невозможно (остаток 0), пользователь получает сообщение».
«При отгрузке система проверяет, что зарезервированный товар всё ещё доступен (не снят другим процессом)».
Почему это важно
Это предотвращает двойные продажи и негативный опыт клиентов. Аналитик должен декомпозировать процесс: резервирование, блокировка, отгрузка, а не просто «предотвращать отгрузку».

Реальный кейс
Крупный ритейлер пострадал от такой ошибки: люди заказывали товар, приезжали забирать, а его уже продали через кассу. Внедрили резервирование при создании заказа.
Post #11826 334
№4808 категория вопросов: #REQUIREMENTS
Post #11825 373
☀Объяснение:

Почему B — правильный ответ
Настоящий опытный аналитик не оценивает без контекста. Он задаёт уточняющие вопросы:

Есть ли документация по API? Какие протоколы?
Нужна ли аутентификация, какие схемы?
Будет ли шлюз обрабатывать идемпотентность?
Какой объём трафика?
Какая команда будет заниматься?
Затем предлагает диапазон оценок (например, 2–4 недели) с факторами риска (сложность аутентификации, отсутствие тестового стенда). Такой подход показывает системное мышление.

Чего ждут интервьюеры

Не названия цифр, а методологии оценки (например, T-shirt sizes, planning poker, аналогии с похожими задачами).
Умение выявлять неизвестное.
Понимание, что интеграция — это не только код, но и тестирование, документирование, отладка.
Почему не другие варианты

A — называется число без анализа, что является красным флагом (не учитывает нюансы).
C — уход от ответа показывает неуверенность.
D — завышенная оценка без объяснений — тоже плохо.

Реальный совет

На собеседовании скажите: «Я бы начал с изучения документации, составил список задач, выделил неизвестные зоны и предложил бы спринт на исследование, после которого дал бы прогноз». Это демонстрирует проактивность.
Post #11822 369
№4807 категория вопросов: #INTERVIEW
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →