Форматы и способы межсервисного взаимодействия.
IMemoryCache — что это и когда использовать?
Расскажите про механизмы синхронизации потоков.
В массиве A хранятся цены на N предметов. Есть K купонов, которые уменьшают цену предмета на X. Если применить t купонов на предмет с ценой a, то его итоговая стоимость будет max(a - t*X, 0) (то есть купоны не могут сделать цену предмета отрицательной. Необходимо вернуть минимальное количество денег, которое придется потратить, чтобы купить все предметы. A = 8, 3, 10, 5, 13 K = 4 X = 7 result=12 --- Вам дан массив a, состоящий из n положительных целых чисел. Существуют ли три различных индекса i, j, k таких, что сумма a[i]+a[j]+a[k] заканчивается цифрой m? Например, для m = 3 solve([20, 22, 19, 84]) = > true // 20 + 84 + 19 = 123 solve([1,2,3]) => false
Что такое консистентное хеширование (consistent hashing)? Виртуальные шарды/бакеты?
Расскажите про работу с авторизацией и аутентификацией (Keycloak, JWT)?
Каковы преимущества NoSQL баз данных перед реляционными? Что такое CAP-теорема?
Как решить проблему деградации кэша (Redis отвечает за 1 секунду, БД за 10мс)?
Как dotnet понимает, что IO-операция завершилась?
Расскажи разницу между ссылочными и значимыми типами.
Что можно сказать об оптимальности плана запроса? MVCC Имеется таблица CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); и запрос к ней, выполняющийся каждую секунду UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Через несколько дней вы замечаете: • размер таблицы сильно вырос • работает медленнее запрос SELECT * FROM orders WHERE id = 1 Вопросы кандидату 1. Почему таблица растёт, хотя строка всегда одна и та же? 2. Какую роль играет MVCC в этой ситуации? 3. Что должно решать эту проблему?
SignalR и WebSocket — общий принцип действия, отличия, когда применять?
Как записать текст в файл одновременно из двух разных тасок? Как синхронизировать доступ?
Вопросы кандидата о проекте (формат работы, команда, процессы)
Prometheus — что такое, как использовал, как работает, как собирает метрики, какие основные типы метрик?
Расскажи про сборку мусора (Garbage Collector): что это такое, для чего придумано, какие концепты есть, как проходит?
Можно ли использовать оператор lock для блокирования доступа в асинхронном коде?
Что будет, если запустить горутину и в ней вызвать panic? Горутина остановится или остановится всё приложение?
Будет ли корректно работать логика catch-блоков для компенсации при использовании await Task.WhenAll? Какое исключение будет брошено?
Задача со строками: что будет выведено? Как перегружен оператор == для строк? Что такое пул интернирования строк?