C#
public bool BookTour(string userId, DateTime start, DateTime end, int hotelId, string roomType, string flightClass, int airCompanyId, int flightnumber) { try { //flightClass tampoco me gustaría analizar como enum var flightInfo = new FlightInfo(Enum.Parse<FlightClass>(flightClass), airCompanyId, flightnumber); var resultBookFlight = _airWaysService.Book(GetUser(userId), flightInfo); //roomType tampoco me gustaría analizar como enum var rentInfo = new RentInfo(start, end, hotelId, Enum.Parse<RoomType>(roomType)); //GetUserId en una variable separada var resultBookHotel = _hotelService.Book(GetUser(userId), rentInfo); //Excepciones irán en el interior, no serán atrapadas Task.WhenAll(resultBookFlight, resultBookHotel); //¿Por qué 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 { //los campos 100% no están inicializados //¿Por qué después de la excepción intentamos guardar algo? //GetUser ya fue extraído unitOfWork.Execute(async () => { await _tourRepository.Save(_reservationIdAir, _reservationIdHotel, GetUser(userId)); }).RunSynchronously(); //Interlock.Increment() _countBooked++; } return true; }
Has recibido una tarea de un colega para revisión de código ¿Qué problemas ves en el código?
¿Qué son IEnumerable y IQueryable, en qué se diferencian?
¿Cómo se logró reducir el tiempo de respuesta de 0.5 ms a 0.2 ms?
¿Cómo acelerar al máximo esta consulta SQL?
¿Puede contar su experiencia con las listas concurrentes (ConcurrentCollection)?
¿Existe alguna combinación de tres índices diferentes i, j, k en un array A de N números positivos, tal que la suma A[i] + A[j] + A[k] termine en el dígito M?
Cuéntame sobre el índice B-tree: ¿cómo se descifra, qué es, cómo funciona, por qué acelera la búsqueda?
¿Cuál es la diferencia entre SingleOrDefault y FirstOrDefault en el método IEnumerable?
¿Cuáles son las principales diferencias entre los tipos de valor y los tipos de referencia en .NET?
¿Qué es un hilo? ¿Cómo lo entiendes?
¿Se puede vincular una variable a un hilo/tarea de modo que cada tarea almacene su propio valor? ¿Qué son ThreadLocal y AsyncLocal?
¿Cuál es otro problema de la multitarea en el método Init?
Cuente sobre el logro o fracaso más significativo en toda su experiencia laboral.
¿Por qué no consideraron Prometheus/Grafana?
Cuéntame brevemente sobre tu experiencia.
¿Qué estructuras de datos (contenedores) conoces en C#? ¿Cuándo usar cuál?
Tipos de transacciones / niveles de aislamiento?
¿Qué son las raíces GC? ¿Cuáles hay?
¿Cuál es la diferencia entre IEnumerable y IQueryable?