Ответ вслух Senior Как вести секцию обновлено

Как говорить о компромиссах

Вопрос

Как вы обосновываете выбор технологии или подхода на секции system design? Приведите пример.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Я формулирую выбор так: есть варианты A и B, вот их плюсы и минусы относительно наших требований, беру A по такой причине, цена такая, пересмотрю при таком условии. Пример: хранение заказов.

Что должно прозвучать в ответе

  • Называю 2-3 альтернативы, а не одну

  • Связываю выбор с требованиями и оценкой нагрузки

  • Явно называю цену выбранного варианта

  • Говорю, при каком условии решение пересмотрю

  • Не называю технологию без причины

Что могут спросить следом

  • А почему не другой вариант?
  • Что будет, когда это условие нарушится?

Разбор

Я формулирую выбор так: есть варианты A и B, вот их плюсы и минусы относительно наших требований, беру A по такой причине, цена такая, пересмотрю при таком условии. Пример: хранение заказов. PostgreSQL даёт транзакции и JOIN, при 300 RPS записи один лидер с репликами справится. Cassandra даст масштаб записи, но без транзакций и с запросами только по ключу партиции. Беру PostgreSQL, цена: при росте записи в десятки раз придётся шардировать по user_id. Такой ответ показывает, что решение вытекает из чисел, а не из моды.

Ответьте сами, а не прочитайте

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