Что будет, если запустить горутину и в ней вызвать panic? Горутина остановится или остановится всё приложение?
Что такое хэш-код? Почему коллизии неизбежны?
Что такое асинхронность и в чём её суть? За счёт чего достигается?
Как синхронизировать приложения, запущенные на разных виртуальных машинах/подах Kubernetes?
Задача: вас попросили сделать код ревью новой фичи, суть которой в возможности забронировать тур (состоящий из авиабилета и отеля). Фичи для раздельного бронирования авиабилета и тура уже существуют, от данной задачи ожидается наличие единого метода, который забронирует либо тур целиком, либо ничего из компонентов тура.
Вопросы кандидата о проекте (формат работы, команда, процессы)
Что из списка является средствами синхронизации в Go? Каналы, sync.WaitGroup, sync.Mutex, sync.Cond?
var buf = new Queue<T>(); foreach (T i in source) { buf.Enqueue(i); if (buf.Count > n) yield return buf.Dequeue(); } // source.Count == 11 var x = FilterLast(source, 3).Take(4);
Как транзакции работают с версиями в MVCC?
Каковы преимущества NoSQL баз данных перед реляционными? Что такое CAP-теорема?
Задача со строками: что будет выведено? Как перегружен оператор == для строк? Что такое пул интернирования строк?
Как решить проблему деградации кэша (Redis отвечает за 1 секунду, БД за 10мс)?
Есть задача: атомарно записать событие в брокер (Kafka/RabbitMQ) и в базу данных. Как обеспечить транзакционность?
Использовали LINQ? Что такое материализация?
Что будет выведено в консоль и почему? (код с Task.WhenAll, Thread.Sleep(1000) и Task.Delay(1000))
Зачем нужны транзакции в базе данных?
Как сделать, чтобы читатели Kafka получали сообщения в том же порядке, в котором они записывались?
Что будет выведено в консоль? ```csharp public class Program { static void Main() { var myClassObj = new MyClass(); var myStructObj = new MyStruct(); MethodA(myClassObj.Num); // MethodB(myStructObj); MethodC(myClassObj); MethodD(myClassObj); Console.WriteLine(myClassObj.Num); // ? Console.WriteLine(myStructObj.Num); // ? } private static void MethodA(int num) { num = num + 1; } private static void MethodB(MyStruct myStruct) { myStruct.Num += 1; } private static void MethodC(MyClass myClass) { myClass.Num += 1; } private static void MethodD(MyClass myClass) { myClass = new MyClass(); } } ```
Интервью займет 1 час, будет live-coding. Подключайся с компьютера и с видео, чтобы было удобно решать задачи)
Плюсы и минусы монолитной и микросервисной архитектуры.