Ar turite patirties diegiant ir naudojant Saga modelį mikroservisų architektūroje?
C#
Kas yra SOLID?
Paaiškinkite, kuo skiriasi reikšmingų ir nuorodinių duomenų tipų naudojimas kaip raktai į įprasto žodyno duomenų struktūrą.
Papaskink apie save, savo įdomias ir reikšmingas užduotis, apie ką nors sudėtingą karjeroje, kuo didžiuojiesi.
Užduotis: Jums buvo paprašyta atlikti naujos funkcijos kodo peržiūrą, kurios esmė yra galimybė užsisakyti turą (kuris susideda iš skrydžio bilieto ir viešbučio). Funkcijos, leidžiančios atskirai užsisakyti skrydžio bilietą ir turą, jau egzistuoja, ir iš šios užduoties tikimasi, kad bus įdiegta vieninga metodika, kuri užsakys arba visą turą, arba nieko iš jo komponentų.
Ar galite paaiškinti, kam skirtas VACUUM komanda PostgreSQL ir kaip ji veikia duomenų bazę?
Ar galite paaiškinti, ką reiškia Dispose modelis programavime?
Kokia yra priežastis naudoti skirtingus atminties segmentus objektų saugojimui vietoj jų sujungimo į vieną sekciją?
Paminėkite du SOLID principus ir pateikite jų pažeidimo pavyzdžių.
Kaip atkurti nuoseklumą, jei Kubernetes sugriuvo po sėkmingo viešbučio rezervavimo, bet iki rezervacijos ID išsaugojimo?
Monolitinės ir mikroservisų architektūros privalumai ir trūkumai.
Ar visada galima naudoti staką reikšmingų duomenų tipams saugoti?
Kiek kartų turi duomenų struktūra tipas krūva?
Kaip optimizuoti metodą Enrich 10 milijonų įvykių su skirtingais ID? Kaip apriboti paralelizmą?
Ar galime naudoti await lock bloke?
public bool BookTour(string userId, DateTime start, DateTime end, int hotelId, string roomType, string flightClass, int airCompanyId, int flightnumber) { try { //flightClass taip pat nenorėčiau analizuoti kaip enum var flightInfo = new FlightInfo(Enum.Parse<FlightClass>(flightClass), airCompanyId, flightnumber); var resultBookFlight = _airWaysService.Book(GetUser(userId), flightInfo); //roomType taip pat nenorėčiau analizuoti kaip enum var rentInfo = new RentInfo(start, end, hotelId, Enum.Parse<RoomType>(roomType)); //GetUserId atskira kintamajame var resultBookHotel = _hotelService.Book(GetUser(userId), rentInfo); //Išimtys eis į vidų, nebus pagautos Task.WhenAll(resultBookFlight, resultBookHotel); //Kodėl 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 { //laukeliai 100% neinicijuoti //Kodėl po išimties bandome kažką išsaugoti //GetUser jau ištrauktas unitOfWork.Execute(async () => { await _tourRepository.Save(_reservationIdAir, _reservationIdHotel, GetUser(userId)); }).RunSynchronously(); //Interlock.Increment() _countBooked++; } return true; }
Yra statinis žodynas, ir mes norime rašyti jį iš skirtingų srautų. Kaip tai geriausia padaryti?
Pavadinkite sinchronizacijos primityvus ir trumpai aprašykite jų veikimo principus.
Kas yra objektinis programavimas?