Erzählen Sie mir von sich, Ihren interessanten und bedeutenden Aufgaben, etwas Schwieriges in Ihrer Karriere, worauf Sie stolz sind.
C#
Erklären Sie den Unterschied zwischen Referenz- und Werttypen.
Können Sie erklären, was eine Datenstruktur ist, die aus aufeinanderfolgenden Elementen desselben Typs besteht?
Können Sie erklären, wozu der Befehl VACUUM in PostgreSQL dient und wie er die Datenbank beeinflusst?
Aufgabe: Sie wurden gebeten, eine Code-Review für eine neue Funktion durchzuführen, deren Kern die Möglichkeit ist, eine Tour zu buchen (bestehend aus einem Flugticket und einem Hotel). Funktionen zum separaten Buchen des Flugtickets und der Tour existieren bereits, und es wird erwartet, dass diese Aufgabe eine einheitliche Methode enthält, die entweder die gesamte Tour oder keine ihrer Komponenten bucht.
Nennen Sie zwei SOLID-Prinzipien und geben Sie Beispiele für deren Verletzung.
Können Sie das Konzept der Generationen im System der automatischen Speicherverwaltung erklären?
Vor- und Nachteile der monolithischen und mikroservice-Architektur.
Wie optimiert man die Methode Enrich für 10 Millionen Ereignisse mit unterschiedlichen IDs? Wie begrenzt man die Parallelität?
Was ist der Grund dafür, verschiedene Speichersegmente zur Speicherung von Objekten zu verwenden, anstatt sie in einem einzigen Abschnitt zusammenzuführen?
Wie viele Generationen hat die Datenstruktur Heap-Typ?
Können Sie erklären, was im Programmieren unter dem Dispose-Muster verstanden wird?
Können wir await innerhalb eines lock-Blocks verwenden?
Kann man immer einen Stapel verwenden, um bedeutende Datentypen zu speichern?
Wie kann die Konsistenz wiederhergestellt werden, wenn Kubernetes nach erfolgreicher Hotelreservierung, aber vor dem Speichern der Buchungs-ID, abgestürzt ist?
public bool BookTour(string userId, DateTime start, DateTime end, int hotelId, string roomType, string flightClass, int airCompanyId, int flightnumber) { try { //flightClass auch nicht als enum parsen var flightInfo = new FlightInfo(Enum.Parse<FlightClass>(flightClass), airCompanyId, flightnumber); var resultBookFlight = _airWaysService.Book(GetUser(userId), flightInfo); //roomType auch nicht als enum parsen var rentInfo = new RentInfo(start, end, hotelId, Enum.Parse<RoomType>(roomType)); //GetUserId in einer separaten Variablen var resultBookHotel = _hotelService.Book(GetUser(userId), rentInfo); //Ausnahmen gehen ins Innere, werden nicht abgefangen Task.WhenAll(resultBookFlight, resultBookHotel); //Warum 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 { //Felder sind zu 100% nicht initialisiert //Warum versuchen wir nach einer Ausnahme etwas zu speichern //GetUser bereits extrahiert unitOfWork.Execute(async () => { await _tourRepository.Save(_reservationIdAir, _reservationIdHotel, GetUser(userId)); }).RunSynchronously(); //Interlock.Increment() _countBooked++; } return true; }
Gibt es ein statisches Wörterbuch, und wir möchten daraus aus verschiedenen Threads schreiben. Wie macht man das am besten?
Nennen Sie die Synchronisationsprimitive und beschreiben Sie kurz ihre Funktionsprinzipien.
Was ist objektorientierte Programmierung?