Подборка объединяет вопросы, отмеченные на этапах интервью в Альфа-Банк. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: devops, infrastructure, database.
Если для каждого из n товаров делать List.Contains по m заблокированным ID, время составляет O(nm). Постройте HashSet заблокированных ID и получите в среднем O(n + m).
Выбор между PostgreSQL и специализированным хранилищем временных рядов зависит от потока записей, срока хранения, запросов и требований к транзакциям. Для умеренной нагрузки обычного PostgreSQL может быть достаточно.
Опишите реальные запросы к телеметрии: интервалы времени, фильтры по устройствам или сервисам, агрегаты и обнаружение отклонений. Конкретный набор зависит от измеряемых событий.
При обработке исключения нужно определить ожидаемую реакцию: восстановление, понятную ошибку вызывающему коду или повторное пробрасывание с сохранением стека. Молчаливый catch обычно скрывает проблему.
SemaphoreSlim координирует только потоки одного процесса. При нескольких экземплярах приложения каждый может одновременно пересчитать один и тот же отсутствующий ключ кеша.
is not null проверяет отсутствие null через сопоставление с образцом и не вызывает перегруженные операторы. Выражение != null может использовать пользовательский оператор !=.
Цены кешируют с ограниченным TTL и инвалидируют при изменении, а при оформлении заказа проверяют актуальные условия. Одновременный cache miss может вызвать лавину одинаковых запросов к БД.
В 1С механизмы блокировок данных используются для предотвращения конфликтов при одновременном доступе нескольких пользователей к одним и тем же данным. Они обеспечивают целостность и согласованность информации.