C#
Как да използвате договори (интерфейси) в услуги? Dependency Injection в C#.
Как работи финализаторът? Сравнете финализатора и IDisposable.
public bool BookTour(string userId, DateTime start, DateTime end, int hotelId, string roomType, string flightClass, int airCompanyId, int flightnumber) { try { //flightClass също не бих искал да анализирам като enum var flightInfo = new FlightInfo(Enum.Parse<FlightClass>(flightClass), airCompanyId, flightnumber); var resultBookFlight = _airWaysService.Book(GetUser(userId), flightInfo); //roomType също не бих искал да анализирам като enum var rentInfo = new RentInfo(start, end, hotelId, Enum.Parse<RoomType>(roomType)); //GetUserId в отделна променлива var resultBookHotel = _hotelService.Book(GetUser(userId), rentInfo); //Изключенията ще отидат вътре, няма да бъдат уловени Task.WhenAll(resultBookFlight, resultBookHotel); //Защо static reservationIdAir = resultBookFlight.Result; _reservationIdHotel = resultBookHotel.Result; } catch (BookFlightException) { _hotelService.CancelBook(_reservationIdAir); return false; } catch (BookHotelException) { _airWaysService.CancelBook(_reservationIdHotel); return false; } catch (Exception ex) { throw new ApplicationException(ex.Message); } finally { //полета 100% не са инициализирани //Защо след изключение се опитваме да запазим нещо //GetUser вече е извлечено unitOfWork.Execute(async () => { await _tourRepository.Save(_reservationIdAir, _reservationIdHotel, GetUser(userId)); }).RunSynchronously(); //Interlock.Increment() _countBooked++; } return true; }
Получихте задача от колега за преглед на код Какви проблеми виждате в кода?
Какви lifetime съществуват в .NET DI и защо Redis ConnectionMultiplexer трябва да бъде регистриран като Singleton?
Как работи конструкцията async/await? В кой поток се изпълнява кодът след await?
С какъв проблем можем да се сблъскаме, ако кешираме няколко свързани данни (температура и новини)?
Как да синхронизираме приложения, работещи на различни виртуални машини/pod-ове на Kubernetes?
Какво се случва вътре в SQL сървъра при изпълнение на заявка? Как се получава резултатът от текста на заявката?
Какво прави методът Intersect()?
Какво е инверсия на зависимостите (принцип SOLID)?
SELECT работи бавно — каква може да е причината и какво да направите?
Какво е интерфейс в C# и какви предимства дава, включително за тестване?
Какво е Activity в MassTransit?
Какво означава yield return?
Каква е сложността при получаване на елемент от масив по индекс?
Разкажи за опита ти в оптимизирането на сложни SQL заявки и работата с план за изпълнение. Имало ли е случай, в който успя да ускориш заявка 2-3 пъти?
Какви структури от данни (контейнери) знаеш в C#? Кога коя да използваш?
Каква практическа полза носи async/await в WinForms/WPF клиент?
Какво е deadlock във връзка с базите данни?