Golang
Welche Systemdesign-Methoden bevorzugst du bei der Erstellung von Lösungen?
Sind Schnittstellen ohne Methoden und eine Schnittstelle, die alle Typen zulässt, gleichwertig?
Welche Methoden können angewendet werden, um die Effizienz bei der Verarbeitung großer Mengen eingehender Anfragen zu verbessern?
Welche Methoden der Datenverteilung auf Shards kennst du?
Wie sollten Schnittstellen in der Programmierung deklariert werden?
Welche Methoden und Werkzeuge verwendest du, um die Effizienz bei der Ausführung von Abfragen in Datenbanken zu verbessern?
type someInterface interface { someFunc() } type A struct { } func(a A) someFunc() { } type B struct { A } type C struct { some A }
Welche Methoden und Werkzeuge haben Sie verwendet, um die Korrektheit und Qualität Ihres Codes zu überprüfen?
Kann die Verwendung von Range mit einem Kanal zu einer Endlosschleife im Programm führen?
Erzähle mir von CQRS
Was ist der Zweck der Aufteilung von Daten in Teilen in Datenbanken?
Wie erfolgt die Speicherzuweisung und -verwaltung im System mit Hilfe des Memory Allocator?
Wie kann man sicherstellen, dass beim Einfügen eines doppelten Eintrags in eine Tabelle mit einem eindeutigen Schlüssel anhand der Telefonnummer anstelle eines Fehlers die vorhandene Zeile aktualisiert wird (INSERT ON CONFLICT DO UPDATE)?
Erklären Sie das Konzept des Work-Stealing und seine Anwendung in parallelen Berechnungen.
Wenn wir mit großem Datenstrom in den Master schreiben und von den Replikaten lesen – wie erfolgt die Synchronisierung des Masters mit der Replik?
Kann man beliebige Codeabschnitte ohne Einschränkungen in geschweifte Klammern einschließen?
Könnten Sie Beispiele für SQL-Abfragen nennen, die Sie verwendet oder geschrieben haben?
Wie wählt man den richtigen Datentyp zur Speicherung der Kosten unter Berücksichtigung der Kopeken im System?
Wie kann man die Leistung von Transaktionen im System messen und analysieren?
/* Der nächste gemeinsame Vorfahre in einem Baum in O(1) Speicher Beschreibung Gegeben ist ein binärer Baum (kein Suchbaum): struct Node { Node* parent; Node* left; Node* right; } Es ist eine Funktion zu schreiben, die für zwei gegebene Knoten ihren nächsten gemeinsamen Vorfahren zurückgibt: Node* Lca (Node* a, Node* b); */