Skip to content
Get App

ЗП 350к! Собеседование СИСТЕМНОГО АНАЛИТИКА в СБЕР

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

Key Takeaways

  • Системный аналитик должен уверенно различать виды требований и понимать их назначение
  • Знание архитектурных стилей и компромиссов микросервисов важно для собеседования
  • Понимание способов интеграции (синхронной и асинхронной) и HTTP-семантики — базовые технические навыки
  • Логические задачи проверяют умение разбивать проблему на шаги и оптимизировать число взвешиваний

What the video covers

  • Типы требований: функциональные, нефункциональные, бизнес-требования, бизнес-правила, пользовательские требования; бизнес-требования описывают цели бизнеса, нефункциональные — скорость, безопасность, отказоустойчивость
  • Архитектуры приложений: монолит, микросервисы, сервисно-ориентированная (SOA), бессерверная; разобраны плюсы и минусы микросервисов (сложность построения и затраты против независимого масштабирования, отказоустойчивости и разных команд/языков)
  • Способы интеграции систем: синхронные (REST, SOAP) и асинхронные (брокеры сообщений, Kafka), ESB, через базу данных, webhook, обмен файлами (SFTP, почта/SMTP)
  • Оркестрация и хореография как подходы к организации взаимодействия сервисов
  • Различие HTTP и HTTPS: HTTPS — HTTP поверх TLS с шифрованием
  • Коды ответов: 200 (OK), 201 (Created), 204 (No Content)
  • Методы REST: GET, PUT, DELETE — идемпотентные; POST, PATCH — неидемпотентные; также OPTIONS и HEAD; обсуждено правильное использование методов в API
  • Логическая задача: 19 банок по 100 таблеток, в одной вес 1,1 г вместо 1 г; на кухонных весах за одно взвешивание определить невозможно, разобран подход с отдельными весами
  • Обсуждён вариант с чашечными весами для 9 банок: разделение на группы по три банки, что позволяет найти самую тяжёлую за два взвешивания
  • Интервью носит разговорный характер, кандидат местами неуверенно отвечает и уточняет формулировки

Answers

Questions about this video

Какие виды требований обсуждались на собеседовании?

Функциональные, нефункциональные, бизнес-требования, бизнес-правила и пользовательские требования. Бизнес-требования описывают цели бизнеса, например рост продаж, а нефункциональные — скорость, безопасность и отказоустойчивость.

Какие плюсы и минусы микросервисов назвал кандидат?

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

Как решается задача с банками и весами?

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

Full Transcript — Download SRT & Markdown

00:00
Speaker A
Так, давай тогда пройдёмся немножко по техническим вопросикам. Какие виды требований ты знаешь?
00:21
Speaker A
Так, смотри, по требованиям у нас есть функциональные, нефункциональные из основных. Также у нас ещё есть бизнес-правила, есть пользовательские требования, чего ещё? Ну, это из основных.
00:37
Speaker A
Вот так, наверное. Какие-то отличия бизнес-требований от нефункциональных можешь сказать?
00:51
Speaker A
Смотри, то есть бизнес-требования это вообще — э-э, зачем вообще что-то делаем именно с точки зрения бизнеса, то есть с какой целью мы хотим достичь именно с точки зрения бизнеса,
01:03
Speaker A
допустим, э-э, увеличить там продажи на 30%, а нефункциональные это про скорость, про безопасность, производительность, отказоустойчивость, вот так вот. Ограничения, которые накладываются. Угу.
01:16
Speaker A
Отлично. Так, э-э, какие виды построения приложений ты знаешь?
01:37
Speaker A
Угу. Это про архитектуру. А, то есть ты говоришь про, условно, монолит, микросервисы, про вот это?
01:53
Speaker A
Ну да, да, да. Так, ну, смотри, кроме э-э монолита и микросервиса у нас ещё есть сервисно-ориентированная архитектура, э-э, есть бессерверная, вот э-э, пам-пам.
02:04
Speaker A
Пока так, наверное. Угу.
02:17
Speaker A
Плюсы и минусы микросервисной архитектуры?
02:22
Speaker A
Угу. Смотри, э-э, микросервисы, они, если сравнивать с монолитом, э-э, более сложные в построении, то есть нам нужно больше времени, ресурсов тратить на вот это, то есть монолит мы можем, э-э, условно, быстрее выкатить, э-э, вот, меньше ресурсов на это затратить. Но плюсы микросервиса в том, что у нас м-м, э-э, за каждую часть нашего сервиса отвечает отдельная команда, она может быть на разном языке даже писать, то есть мы можем, ну, плюс в
02:34
Speaker A
том, что у нас вот это, э-э, масштабировать можем отдельно, докатывать сервис. Также у нас есть отказоустойчивость, то что у нас если один сервис полетит, то все остальные будут работать.
02:50
Speaker A
Вот, ну и да, то есть у нас, как я сказал, что в каждом сервисе может отвечать разные команды, то у нас как бы независимость в этом плане тоже, то что, допустим, мы можем какой-то один сервис
02:58
Speaker A
э, как бы, условно, прокачивать, а другой не трогать, и у нас всё как бы нормально будет.
03:09
Speaker A
Угу. О'кей. Какие виды интеграции ты знаешь?
03:15
Speaker A
Угу. Так, ну, есть у нас синхронные, асинхронные. Синхронные — это REST.
03:29
Speaker A
Не, это немножко другое. Как обмениваются данные, способы интеграции систем.
03:41
Speaker A
А, ну, условно REST. Это в сторону REST, да. А, ну да, ну то есть у нас есть REST, SOAP, там брокеры сообщений, ESB, через базу данных.
04:04
Speaker A
Угу. Ну вот я просто хотел сказать, что REST, REST, например, типа синхронные, а Kafka — это там всё асинхронное.
04:25
Speaker A
Ну да. Ещё там есть оркестрация, хореография, вот это.
04:38
Speaker A
Не, не, не, не, не, не, не. Ещё один способ есть. Э-э, кроме базы, брокеров и веб-сервисов.
05:01
Speaker A
Так, кроме... А, webhook, такой ещё есть.
05:16
Speaker A
Файлами.
05:24
Speaker A
А, файлами. Это мало используется, но существует.
05:36
Speaker A
Через почту, вроде бы, есть SMTP, что-то такое.
05:43
Speaker A
SFTP — это файловый сервис, это можешь где-то выкладывать, грубо говоря. Это есть, здесь у нас такая штука, когда загрузка используется через файл. Угу.
05:58
Speaker A
Excel-ник выгружается на сервак, а потом парсером разбирается, если схема сохранена. Неудобно, грубо, но иногда используется.
06:12
Speaker A
Угу. Так, знаешь отличие HTTP и HTTPS?
06:26
Speaker A
Угу. HTTPS — это ну, защищённый, условно, HTTP, то есть HTTP это обычный протокол, который без шифрования. HTTPS — это как бы то же самое HTTP, только с TLS, то есть, типа, с шифрованием.
06:45
Speaker A
Угу. Дальше, отличаются 201 ответ от 200 и 204?
06:53
Speaker A
Смотри, так, сейчас вспомню. Э-э, двухсотка, как... Так вот, ещё раз, ты спросил, 201 от 200, 200, 201, 204. Может... Смотри, да, смотри, 200, короче, это о'кей, то есть базовый, типа запрос у
07:01
Speaker A
нас успешно выполнен. Вот, 201 — это created, а 204 — это, ну, вроде no content, то есть, типа, нету...
07:16
Speaker A
Да, да, да, это о'кей, но без контента.
07:34
Speaker A
Угу. О'кей. Э-э, так, что у нас ещё есть? Э-э, а... пам-парам-пам-пам. Какие виды запросов ты знаешь?
07:42
Speaker A
Мм, методы, ты имеешь в виду?
07:55
Speaker A
Ну да, методы. В REST. Post и так далее.
08:05
Speaker A
Угу. Ага. Да?
08:14
Speaker A
Ну, смотри, э-э, получается, GET, PUT, DELETE — это идемпотентные, POST, PATCH — не идемпотентные. Ну, также ещё, чего там есть, OPTIONS, например.
08:30
Speaker A
Угу. HEAD. Не так часто используется.
08:44
Speaker A
Э-э, могу объяснить, объяснить, чем это дело тут?
08:50
Speaker A
Ну, это понятно. У нас, кстати, это часто используется в ручках. Они у нас ориентированы на, ну, по-правильному написаны. То есть это может по-разному быть.
09:03
Speaker A
Согласен. Можно использовать везде POST и всё, и радоваться жизни. И он будет прекрасно работать, как GET.
09:15
Speaker A
Но для кого-то другого это будет не очень удобно.
09:35
Speaker A
Угу. О'кей. Давай-ка тогда маленькую логическую задачку.
09:42
Speaker A
Смотри, у нас есть 19 банок, стеклянных, прозрачных, абсолютно, считай, что невесомых, без разницы, вот. А все заполнены таблетками, в каждой банке по 100 таблеток.
09:52
Speaker A
18 банок, а таблетки весят по 1 г, у 19-й — 1,1. И у тебя есть весы кухонные, такие, не чашками, а просто в граммовках, которые тебе могут сказать, сколько грамм.
09:59
Speaker A
Как за одно взвешивание понять, в какой банке а таблетки весят больше?
10:07
Speaker A
Так, а мы на этих весах взвешиваем, условно, сразу две?
10:16
Speaker A
Да как хочешь. Это просто вот кухонные весы, квадратик, как как ещё напольные. Ты ставишь что-нибудь, а он тебе показывает вес.
10:22
Speaker A
Там 100 г, 110.
10:33
Speaker A
Ага, а мы можем взвешивать и, условно, и саму банку, а таблетку можно взвесить отдельно?
10:36
Speaker A
Конечно. Открытые банки, всё вот. Хочешь, сыпь вместе, хочешь, рассыпь. Ну, смотри, допустим, что можно придумать? Допустим, из первой банки мы берём, м, так, у нас 19 банок, мы не знаем, где там сколько весит, да?
10:47
Speaker A
Угу. Э, ну, допустим, из первой банки мы берём одну таблетку, из второй я... А, ну, смотри, давай так. Берём, короче, м, таблетку из первой банки, э, берём таблетку из... А, нет, подожди. У нас же все таблетки в банках, они перемешаны?
10:54
Speaker A
Ну, есть... Ну, у тебя, смотри, у тебя есть полностью банка с сотней таблеток по 1 г.
11:06
Speaker A
И таких 18. А есть такая же банка, такие же таблетки, ты это 1/10 грамма на вид не увидишь. Вот такие же белые, не знаю, там хоть зелёные. Вот, которые весят 1,1 грамма.
11:16
Speaker A
Угу. Так, а у нас есть только одно взвешивание, да?
11:26
Speaker A
Да.
11:35
Speaker A
Угу. То есть мы один раз просто взвесим там либо две таблетки, либо две банки, и всё, и больше не можем.
11:46
Speaker A
Да, всё, всё, всё. И ты должен сказать сразу, где эта штука.
11:52
Speaker A
Ну, смотри, м-м. Давай так. Ну, что могу придумать? Э-э. Берём, короче, из м-м. Берём, короче, давай так, м-м, вот так вот сделаем. В общем, у нас же 19 банок, возьмём из 18 по одной таблетке.
12:05
Speaker A
Угу. Э-э, и если у нас, э-э, суммарно будет вес, сколько там, в каждой, ты сказал, 100 по 1 грамм. 1 грамм. 18 грамм. Берём 18 таблеток из 18 разных, и у нас получается, если будет 18 грамм,
12:19
Speaker A
то тогда, э-э, значит, вот эти таблетки все весят по одному грамму, и последняя весит 1,1.
12:36
Speaker A
Э-э, но это как бы уникальный случай. То есть ну... Это ты прямо угадаешь. Это ты можешь с тем же успехом поставить эту банку. Опа, она у тебя 110 весит, ну, отлично. Так, ну, всё-таки так можно сделать, если мы угадаем.
12:50
Speaker A
Нет, это и да, это разовый случай.
12:54
Speaker A
Чего?
13:04
Speaker A
М-м. О'кей, давай срежем чуть попроще, поставим. Давай поставим, э-э, другие условия, поставим обычные весы, чашечные.
13:15
Speaker A
Угу. И, э-э, оставим те же 19 банок. И вопрос, как бы, за сколько взвешиваний ты сможешь определить, э-э, вот эту банку, самую тяжёлую.
13:22
Speaker A
Угу. И как ты будешь делать?
13:36
Speaker A
Угу. Вот у тебя есть обычные чашки, там. Или давай сделаем кратное трём, о'кей?
13:51
Speaker A
Угу. Давай попробуем, э-э, девять банок.
13:58
Speaker A
Угу. Десятку уберём, нафиг она. Там много шагов будет просто.
14:05
Speaker A
Угу. Давай девять банок. Весы?
14:15
Speaker A
Так, и мы на весы также можем либо банку поставить, либо таблетку поставить.
14:29
Speaker A
Да, да, да, да, да. Да, ты можешь банку, таблетку. Минимальное количество мы не упираемся в одно, откинет как бы его.
14:41
Speaker A
Просто им будет за...
14:54
Speaker A
Так, ну, давай, да. Что, что как бы хочется сразу? У нас есть девять банок.
15:00
Speaker A
Значит, мы можем разделить на три группы. Э, и взвесить первую группу. То есть мы взвешиваем первые три банки.
15:09
Speaker A
Если у тебя весы вот эти вот.
15:18
Speaker A
А, вот эти, которые с чашками. Мы же, я же говорил, от тебя отбрось, переключись.
15:24
Speaker A
Отбросили. Мы уже, да. О'кей, тогда делим, у нас три, девять. Тогда мы б
15:36
Speaker A
И за второй шаг можешь уже с точностью сказать, э, где лежит самая тяжёлая. Угу.
15:43
Speaker A
Угу. Ну, да. Хорошо.
Topics:системный аналитиксобеседованиеСбертребованиямикросервисыинтеграцияRESTHTTPлогическая задачаIT-карьера

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries and speaker detection. 30 minutes free.

Or transcribe another YouTube video here →