BA & SA | 10000 Interview questions
10.2K subscribers
172 photos
14 videos
342 links
Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Download Telegram
ПРОМТ, КОТОРЫЙ УЛУЧШИТ ВАШ БЛОГ ИЛИ ПРОДУКТ

- нормально сегментирует ЦА, а не напишет «женщины 30+»
- подскажет, что нужно докрутить


В одной ПАПКЕ с топовыми каналами по бизнесу, IT и AI

AI песочница инженера

…. и ещё много полезных каналов, из которых вы получите

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

❗️через 3 дня удалю пост

ПОПАСТЬ В ПОДБОРКУ КАНАЛОВ
Объяснение:

Увеличение реплик, индекс или смена БД не решают проблему гонки. Только блокировка строки SELECT ... FOR UPDATE гарантирует, что второй заказ увидит уже изменённый остаток.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4859 категория вопросов: #ARCHITECTURE
4859. В микросервисной архитектуре мобильное приложение вызывает 5 разных микросервисов напрямую. При изменении IP-адреса одного сервиса приложение перестаёт работать. Какой паттерн решает эту проблему?
Anonymous Quiz
4%
Перейти на синхронные вызовы с ретраями
92%
Внедрить единую точку входа (API Gateway)
4%
Хранить адреса сервисов в кэше приложения
1%
Использовать общую базу данных для координации
Очевидно, что всего через пару лет умение работать с ИИ станет таким же обычным делом, как открыть браузер или найти что-то в поисковике.

И вот что удивительно — многие до сих пор не воспринимают это всерьёз.

Одни продолжают делать всё по старинке — руками.
А другие — уже сейчас экономят часы работы с нейросетями и вырываются вперёд.
С каждым месяцем разрыв между ними будет только расти.


Вот отличная подборка сильных экспертов по AI & IT для твоего профессионального роста:
(https://t.me/addlist/iy6id2ElW_hiNTg0)

* Там — живые инструменты, реальные кейсы и понятные схемы, как использовать нейросети с толком и высоким КПД.

Если Тема тебе откликается — добавляйся в ПАПКУ 📌 👉 Делимся знаниями и аудиторией — растём вместе ⚡️ * Отписаться можно в любой момент. Остаться — тоже. ✔️
👍1
Объяснение:

Ретраи, кэширование адресов в приложении или общая БД не решают проблему смены IP. API Gateway скрывает внутреннюю структуру, клиент знает только адрес шлюза
Please open Telegram to view this post
VIEW IN TELEGRAM
⁉️ Устал искать интересные каналы с новостями про искусственный интеллект?

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

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

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

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

🤩 Организаторы: Green.Papka
Please open Telegram to view this post
VIEW IN TELEGRAM
№4860 категория вопросов: #REQUIREMENTS
4860. На проекте требования меняются каждую неделю. Команда тратит время на переделки. Какой инструмент аналитик должен применить для контроля изменений?
Anonymous Quiz
6%
Фиксировать все изменения в протоколе встреч
85%
Внедрить процесс управления изменениями (Change Request)
1%
Еженедельно пересматривать приоритеты задач
9%
Использовать матрицу трассируемости требований
Объяснение:

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

Что такое процесс управления изменениями (Change Request)?
Это формальная процедура, которая состоит из шагов:

Запрос на изменение (Change Request, CR) – любой стейкхолдер заполняет форму: описывает изменение, обоснование (почему это важно), ожидаемую бизнес-ценность.

Оценка – аналитик вместе с разработчиками оценивает трудозатраты, влияние на другие модули, риски, необходимость изменений в документации и тестах.

Рассмотрение на Change Control Board (CCB) – встреча с участием заказчика, продукт-оунера, технического лида. Принимается решение: принять, отклонить, отложить. Если принимается, то определяется, за счёт каких задач это будет сделано (вытеснение других задач, сдвиг сроков).
Коммуникация – решение доводится до всей команды, обновляются требования и бэклог.
Реализация – изменение попадает в разработку уже с понятным приоритетом.

Почему остальные варианты не решают проблему?
A (фиксировать в протоколе) – полезно, но не даёт оценки трудозатрат и приоритизации. Команда всё равно вынуждена реагировать на каждое изменение «по факту».
C (еженедельный пересмотр приоритетов) – хорошая практика, но без формального CR изменения могут быть неполными, неоценёнными или незадокументированными.
D (матрица трассируемости) – помогает понять, какие артефакты связаны с требованием, но не управляет потоком изменений.

Реальный кейс из практики:
В одном проекте по разработке CRM для сети салонов связи изменения поступали ежедневно. Аналитик просто передавал их в бэклог, команда хваталась за то, что «горело». В результате через месяц половина фич была недоделана, а релиз сдвинулся на три недели. Ввели Change Request Board из трёх человек (заказчик, аналитик, тимлид). Заказчик заполнял CR-форму (описание, ценность). На ежедневной 15-минутной встрече оценивали влияние. Если оценка превышала 8 часов, вопрос выносили на еженедельное заседание. Через месяц количество несогласованных правок сократилось на 80%, а команда стала прогнозировать сроки.

Что должен зафиксировать аналитик:
В регламенте проекта: «Любое изменение требований после утверждения бэклога оформляется через Change Request и проходит оценку».
Форма CR должна содержать поля: автор, описание, обоснование (ожидаемый эффект), приоритет для бизнеса.
Порог принятия: например, изменения до 4 часов может утвердить PO, более 4 часов – CCB.

Вывод: Управление изменениями – это не бюрократия, а способ сохранить предсказуемость разработки и снизить хаос. Аналитик выступает не врагом изменений, а их фильтром и координатором.
Please open Telegram to view this post
VIEW IN TELEGRAM
НЕБОЛЬШОЙ АПГРЕЙД ТВОЕЙ ЛЕНТЫ, КОТОРЫЙ ДАСТ ХОРОШИЙ БУСТ ТВОЕЙ КАРЬЕРЕ

Друзья, наш канал попал в подборку тг-каналов про AI & IT, технологии и карьеру — получилась тусовка «для своих» 😎

Мы собрали каналы для себя, которые реально полезны:
следить за ИИ — от свежих инструментов до реальных кейсов
разбираться в технологиях — тренды, обзоры и объяснения
расти в IT — советы по карьере, поиску работы и развитию
быть в теме HR Tech — как технологии меняют найм и управление, ИИ для удаленки и работы за рубежом

🆒 Осталось только добавить папку себе ✔️https://t.me/addlist/iy6id2ElW_hiNTg0
👍1🔥1
№4861 категория вопросов: #DBMS
4861. В таблице «Клиенты» нет первичного ключа, но есть дубли по полям (ФИО, email, телефон). Как найти все дублирующиеся записи?
Anonymous Quiz
15%
Использовать оконную функцию ROW_NUMBER() с PARTITION BY
22%
Создать временную таблицу с уникальными записями
62%
Применить GROUP BY и HAVING COUNT(*) > 1
2%
Добавить автогенерируемый первичный ключ
Объяснение:

При загрузке данных из разных источников (CSV, старые базы, ручной ввод) часто появляются дубли. Первичного ключа нет, и нужно выявить все строки-дубликаты (а не просто узнать, какие комбинации полей дублируются). Например, клиент Иванов Иван с email ivan@mail.ru может встретиться три раза с разными id (если бы id был). Нужно найти все эти три записи, чтобы потом оставить одну (чистка данных).

Что делает ROW_NUMBER()?
Оконная функция 
ROW_NUMBER() присваивает уникальный номер каждой строке внутри группы. Группа определяется PARTITION BY (поля, по которым ищем дубли). Порядок нумерации внутри группы задаётся ORDER BY (можно по любому полю, например, по условному id, если есть, или дате). Первая строка в группе получает номер 1, вторая – 2 и т.д. Все строки с номером > 1 – дубликаты.

Пример запроса:
sql
WITH ranked AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY fio, email, phone ORDER BY id) AS rn
FROM clients
)
SELECT * FROM ranked WHERE rn > 1;

Если таблица не имеет поля 
id, можно использовать ORDER BY (SELECT NULL) или любую константу – тогда порядок произвольный, но дубли всё равно будут отмечены.

Почему другие варианты не подходят:
C (GROUP BY + HAVING) – покажет, какие комбинации полей встречаются более одного раза, но не выдаст сами записи. Например, вы узнаете, что (Иванов, 
ivan@mail.ru) дублируется, но не получите три строки для анализа.
B (временная таблица) – технически можно: вставить уникальные записи во временную таблицу, потом сравнить. Но это громоздкий и медленный способ, особенно для больших объёмов.
D (добавить PK) – автогенерируемый ключ не найдёт существующие дубли. Он только предотвратит новые дубли, если добавить уникальное ограничение.

Реальный кейс:
В одной компании при миграции из старой CRM в новую выяснилось, что в таблице 
customers15% записей – дубли по ФИО+email. Аналитик использовал ROW_NUMBER(), сгенерировал отчёт с дублями и передал бизнесу на чистку. Без оконных функций пришлось бы писать сложные самосоединения, которые работали бы часы.

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

Вывод: Для выявления полных дубликатов записей (а не просто факта дублирования) оконная функция 
ROW_NUMBER() – самый эффективный и наглядный инструмент.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4862 категория вопросов: #INTEGRATION
4862. Два сервиса должны обмениваться данными. Если сервис-получатель временно недоступен, данные теряются. Какой тип взаимодействия выбрать?
Anonymous Quiz
5%
Синхронный REST-вызов с повторными попытками
89%
Асинхронная очередь с гарантированной доставкой
2%
Периодическая синхронизация по расписанию
4%
Общая база данных для обмена
IT-сфера снова переживает бурные времена. AI-технологии влияют на классические подходы, а компании, которые не успевают адаптироваться - теряют позиции. В этой ситуации решает не количество информации, а её качество.

Мы собрали папку каналов для тех, кто не просто «следит за трендами», а реально работает с цифрами, тестирует AI инструменты и адаптирует свои процессы под новые реалии.

Только практические советы и реальные кейсы👇🏻

Сохранить папку 📨

Доступно 48 часов❗️
Объяснение:

Когда сервис A вызывает сервис B через REST API, он ждёт ответа. Если B недоступен (сетевая проблема, падение, перезагрузка), A получает ошибку. Если A не сохранил данные локально, они теряются навсегда. Даже с ретраями (повторными попытками) при длительном сбое (например, 30 минут) данные всё равно потеряются после исчерпания попыток.

Как асинхронная очередь решает проблему
Брокер сообщений (RabbitMQ, Kafka, Amazon SQS) действует как надёжный буфер:
Сервис A отправляет сообщение в очередь и не ждёт ответа (асинхронно).
Если сервис B недоступен, сообщение остаётся в очереди.
Очередь хранит сообщения на диске (персистентность), поэтому даже перезапуск брокера не удалит их.
Когда B восстанавливается, он забирает все накопившиеся сообщения и обрабатывает их.
Гарантируется доставка «хотя бы один раз» (at‑least‑once), а при правильной настройке – идемпотентная обработка.

Почему другие варианты не подходят:
A (синхронный REST + ретраи) – ретраи помогают при кратковременных сбоях (секунды), но при длительной недоступности (часы) данные теряются. Кроме того, ретраи могут создать дополнительную нагрузку на восстанавливающийся сервис (эффект «retry storm»).
C (периодическая синхронизация) – например, раз в час. За это время данные могут устареть, а при сбое в момент передачи всё равно возможна потеря. Не подходит для интерактивных сценариев.
D (общая БД) – антипаттерн в микросервисной архитектуре: сервисы начинают зависеть от схемы данных друг друга, теряется независимость, сложно эволюционировать

Реальный кейс из практики:
Сервис заказов интернет-магазина должен был отправлять данные в CRM. Изначально использовали синхронный REST. При падении CRM на 10 минут 200 заказов не попали в CRM, и менеджеры не видели их. После перехода на RabbitMQ заказы публиковались в очередь. При сбое CRM сообщения накапливались в очереди (до 10 000 за час). После восстановления CRM обработала все заказы за несколько минут. Потери данных были исключены.

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

Вывод: Выбор между синхронным и асинхронным взаимодействием – это компромисс между простотой и надёжностью. Для критичных данных, которые нельзя терять, и при допустимой задержке асинхронная очередь – единственно правильное архитектурное решение.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4863 категория вопросов: #ARCHITECTURE
4863. Распределённая система должна гарантировать, что все узлы видят одни и те же данные в любой момент времени и оставаться доступной даже при сбоях. При сетевом разделении система перестаёт принимать запись. Какую теорему иллюстрирует этот пример?
Anonymous Quiz
13%
Теорема Геделя о неполноте
63%
CAP-теорема Брюера
10%
Закон Амдала о распараллеливании
15%
Теорема Коуза о трансакционных издержках
Объяснение:

Что такое CAP-теорема?

В 2000 году профессор Эрик Брюер сформулировал, что в распределённой системе (данные хранятся на нескольких узлах) невозможно одновременно гарантировать все три свойства:
Consistency (C) – строгая согласованность: после успешной записи все последующие чтения видят эту запись (нет устаревших данных).
Availability (A) – доступность: каждый запрос получает ответ (даже если часть узлов недоступна).

Partition tolerance (P) – устойчивость к сетевым разделениям: система продолжает работать, когда связь между узлами нарушена.
При сетевом разделении (например, кабель между дата-центрами оборван) система вынуждена выбирать между C и A.
Если выбираем CP (согласованность + устойчивость к разделениям), то при разделении блокируем запись, чтобы не нарушить согласованность. Доступность падает: некоторые запросы не получают ответа.
Если выбираем AP (доступность + устойчивость к разделениям), то разрешаем запись в каждый раздел независимо, но потом данные могут расходиться (согласованность нарушена).

Почему пример иллюстрирует CAP?
В задаче сказано: система должна быть строго согласованной и доступной. При сетевом разделении она перестаёт принимать запись. Это значит, что система жертвует доступностью для сохранения согласованности. То есть система выбрала CP. CAP-теорема объясняет, почему невозможно иметь и то, и другое одновременно.

Разбор других вариантов:
A (теорема Геделя) – о неполноте формальных систем, к распределённым БД не относится.
C (закон Амдала) – о максимальном ускорении при распараллеливании, не про согласованность.
D (теорема Коуза) – экономическая, о трансакционных издержках.

Реальный пример из практики:

Банковская система (CP) – при разделении между офисами временно запрещает списания, чтобы не возникло отрицательного баланса. Доступность снижена, но деньги в безопасности.

Социальная сеть (AP) – при разделении дата-центров вы всё равно можете поставить лайк (доступность), но счётчик лайков может временно расходиться (eventual consistency).

Что должен зафиксировать аналитик:
В требованиях к распределённой системе явно указать, что важнее: строгая согласованность или доступность.
Например: «В системе управления запасами товара допустима задержка репликации не более 5 секунд, но запись товара должна быть всегда доступна (AP)» или «Платёжная система должна быть строго согласованной (CP)».

Вывод: CAP-теорема – фундаментальное ограничение, которое аналитик обязан понимать при проектировании распределённых систем. Нельзя попросить «идеальную систему», нужно выбирать компромисс.
Please open Telegram to view this post
VIEW IN TELEGRAM