Դուք ունե՞ք փորձ միկրոսերվիսների ճարտարապետությունում Saga դիզայնի կիրառման և օգտագործման վերաբերյալ։
C#
Դուք պարզաբանում եք, արդյոք ձեր ապագա դերի համար հատուկ նախընտրություններ կամ պահանջներ ունեք?
Մոնոլիտային և միկրոսերվիսային ճարտարապետության առավելություններն ու թերությունները։
Իմացրու ինձ մասին, հետաքրքիր և կարևոր գործերիդ մասին, ինչ-որ բարդ բան քո կարիերայում, ինչի համար հպարտ ես։
Ինչպես լուծել կեշի դեգրադացիայի խնդիրը (Redis պատասխանում է 1 վայրկյանում, տվյալների բազան՝ 10 մս)?
Կիրառեք մեթոդ, որը լրացնում է օգտվողի լրիվ անունը պահոցից (IDbRepository կամ ICacheRepository) և փոխանցում է հարուստ իրադարձությունը առաջ (IEventSaver) Անհրաժեշտ է հասնել առավելագույն արդյունավետության Կեշում պահվում է 99.9% արդիական տվյալներ Պահպանումը ժամանակաշրջանում իրադարձությունների սկզբնական կարգը կարող է խախտվել public async Task Enrich(IEnumerable<UserEvent> events) { }
Կա՞ք ձեր փորձը մոնոլիտ ծրագրերի մշակում կամ աջակցություն ցուցաբերելու մեջ։
Ներկայացրեք հղման և արժեքի տեսակների տարբերությունը։
Ինչու է տարբեր հիշողության հատվածներ օգտագործվում օբյեկտների պահպանման համար՝ փոխարենը նրանց միավորելու մեկ հատվածում?
Կարող եք բացատրել, թե ինչ է ենթադրվում SQL տվյալների բազաների համատեքստում՝ ինդեքսները:
Ինչպե՞ս վերականգնել համատեղելիությունը, եթե Kubernetes- ը ընկավ հաջող հյուրանոցի ամրագրումից հետո, բայց նախքան ամրագրման ID-ն պահպանելը։
Կարող եք բացատրել, թե ինչ է նշանակում Dispose ձևանմուշը ծրագրավորման մեջ?
Ի՞նչ քանակի սերունդներ ունի տվյալների կառուցվածքը տիպի հողմակետը։
Կարող է միշտ օգտագործել ստեկը կարևոր տվյալների տեսակների պահպանման համար:
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; }
Կան statični բառարան և մենք ուզում ենք գրել դրա մեջ տարբեր հոսքերից: Ինչպես է դա լավագույնը անել?
Ի՞նչ է օբյեկտային ուղղված ծրագրավորումը։
Նշեք սինխրոնիզացիայի պրիմիտիվները և կարճ նկարագրեք նրանց աշխատանքի սկզբունքները։