C#
Ir trīs metodes, kas maina preces informāciju (maina stāvokli, maina tagu sastāvu un nosaka svaru). Tā kā nākotnē plāno pievienot vēl 10-20 metodes, kas maina preces informāciju (pašas metodes var tikt realizētas kā NuGet citā servisā), ir jārealizē viena metode DoSomethingWithItem, kas atkarībā no ievades parametriem varētu izsaukt jebkuru preces izmaiņu. Citiem vārdiem, metodei var teikt "Mainīt stāvokli" vai "Noteikt svaru" un tās realizācija pati izsauks vienu no metodēm, piemēram, StateChanger.Change vai WeightSetter.Set, utt. Klases StateChanger, TagsSetter un WeightSetter var tikt mainītas. Galvenais ir saglabāt biznesa funkcionalitāti.
Kāds ir jūsu līmenis pašreizējā uzņēmumā?
Kas ir interfeiss C# un kādas priekšrocības tas sniedz, tostarp testēšanai?
Kāda ir atšķirība starp SingleOrDefault un FirstOrDefault IEnumerable metodē?
Kas ir Activity MassTransit?
Singleton ar lock objektu, statisko lauku instance, privātu konstruktoru un GetInstance metodi. Kādas ir problēmas?
Kas ir pieprasījumu caurule (middleware pipeline) ASP.NET Core?
Kā var paplašināt klases metodi, nemainot avota kodu?
Monolītiskās un mikroservisu arhitektūras priekšrocības un trūkumi.
Kā īstenot lietotāju pāradresāciju no mobilajām ierīcēm uz mobilo apakšdomēnu (kā VKontakte)?
Kādi paraugi un agregācijas tika veiktas telemetrijas datos?
Kas ir Outbox un Inbox modeļi?
int[] Distinct(int[] src) //[1,2,5,3,3,2] → [1,2,5,3] // Izpildiet metodi, kas atgriež masīvu bez dublētiem, saglabājot elementu kārtību, bez LINQ. //[1,2,5,3,3,2] → [1,2,5,3] //[Ievadiet risinājumu zemāk]
publiska bool BookTour(string userId, DateTime start, DateTime end, int hotelId, string roomType, string flightClass, int airCompanyId, int flightnumber) { try { //flightClass arī nevēlētos parsēt uz enum var flightInfo = new FlightInfo(Enum.Parse<FlightClass>(flightClass), airCompanyId, flightnumber); var resultBookFlight = _airWaysService.Book(GetUser(userId), flightInfo); //roomType arī nevēlētos parsēt uz enum var rentInfo = new RentInfo(start, end, hotelId, Enum.Parse<RoomType>(roomType)); //GetUserId atsevišķa mainīgā var resultBookHotel = _hotelService.Book(GetUser(userId), rentInfo); //Izņēmumi tiks apstrādāti iekšējā, neķerot Task.WhenAll(resultBookFlight, resultBookHotel); //Kāpēc statiska 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 { //lauki 100% nav inicializēti //Kāpēc pēc izņēmuma mēģinām kaut ko saglabāt // GetUser jau ir izņemts unitOfWork.Execute(async () => { await _tourRepository.Save(_reservationIdAir, _reservationIdHotel, GetUser(userId)); }).RunSynchronously(); //Interlock.Increment() _countBooked++; } return true; }
Jūs saņēmāt kolēģa uzdevumu pārskatīt kodu Kādus problēmas redzat kodā?
Vai ir nepieciešams kopā pārrakstīt GetHashCode un Equals? Vai var pārrakstīt tikai vienu no tiem?
Nosauciet divus SOLID principus un sniedziet to pārkāpumu piemērus.
Kas ir gRPC un kā tas atšķiras no parastā HTTP?
Kas notiek SQL servera iekšienē, izpildot vaicājumu? Kā no vaicājuma teksta tiek iegūts rezultāts?
Vai autorizācijas forma Keycloak tiek nodrošināta pašas Keycloak?