C#
Жұмыста не нәрсе сенің күшіңді көтереді, не нәрсе сен қуанышқа бөленесің?
Егер бірнеше байланысты деректерді (температура және жаңалықтар) кэштеу болса, қандай мәселе туындауы мүмкін?
Өнім туралы ақпаратты өзгерту үшін үш әдіс бар (күйін өзгерту, тегтерді өзгерту және салмақты орнату). Кейін қосымша 10-20 әдіс қосылатыны жоспарланып отыр, олар да өнім туралы ақпаратты өзгертуі мүмкін (осы әдістер басқа қызметте NuGet ретінде жүзеге асырылуы мүмкін). Сондықтан, барлық өзгерістерді бір әдіс - DoSomethingWithItem - арқылы жүзеге асыру керек, ол кіріс параметрлеріне қарай кез келген өнім өзгерісін шақыра алады. Мысалы, әдіске "Күйін өзгерту" немесе "Салмақты орнату" деп айтуға болады, және оның жүзеге асырылуы StateChanger.Change немесе WeightSetter.Set сияқты әдістерді шақырады. StateChanger, TagsSetter және WeightSetter сыныптарын өзгертуге болады. Негізгі мақсат - бизнес-функционалдылықты сақтау.
Қазіргі компанияңызда қандай грейдтесіз?
C#-да интерфейс дегеніміз не және ол қандай артықшылықтар береді, соның ішінде тестілеу үшін?
IEnumerable әдістерінің қысқаша салыстырмасы: SingleOrDefault және FirstOrDefault — айырмашылығы неде?
MassTransit-те Activity деген не?
Singleton-мен lock объектімен, статикалық өріс ретінде instance, жеке конструктор және GetInstance әдісі бар. Қандай мәселелер бар?
ASP.NET Core-да сұрау құбырлары (middleware құбырлары) дегеніміз не?
Класс әдісін өзгеріссіз қалай кеңейтуге болады?
Монолиттік және микросервистік архитектураның артықшылықтары мен кемшіліктері.
Пайдаланушыларды мобильді құрылғылардан мобильді субдоменге (VKontakte сияқты) қалай бағыттауға болады?
Телеметриялық деректерге қандай сұраулар мен агрегациялар орындалды?
Outbox және Inbox паттерндері деген не?
Тапсырма 1 LINQ қолданбай, элементтердің тәртібін сақтай отырып, қайталанбайтын массивті қайтаратын әдіс жасаңыз. int[] Distinct(int[] src) //[1,2,5,3,3,2] → [1,2,5,3] -------------- төменде шешімді енгізіңіз --------------
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); //Exception ішкі әдіске кетеді, ұстамайды Task.WhenAll(resultBookFlight, resultBookHotel); //Неге статикалық 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% инициализацияланбаған //Неге exception болған соң бір нәрсе сақтауға тырысамыз // GetUser бұрын шығарылды unitOfWork.Execute(async () => { await _tourRepository.Save(_reservationIdAir, _reservationIdHotel, GetUser(userId)); }).RunSynchronously(); //Interlock.Increment() _countBooked++; } return true; }
Әріптесіңіздің тапсырмасы Code Review-ға түсті Кодта қандай мәселелер көресіз?
GetHashCode және Equals бірге қайта анықтау керек пе? Тек біреуін ғана қайта анықтауға бола ма?
SOLID-тің екі принципін атаңыз, олардың бұзылу мысалдарын келтіріңіз.
gRPC деген не және ол кәдімгі HTTP-ден қалай ерекшеленеді?