Mit welchen Datenbanken haben Sie gearbeitet und auf welchem Niveau? Mehr Details zu PostgreSQL, Redis, ClickHouse.
Golang
Wie gibt man in Go ein Fehlerobjekt zurück, ohne das Paket errors aus der Standardbibliothek zu verwenden?
Entwerfen Sie ein SQL-Schema für ein Banksystem mit Tabellen für Konten und Transaktionen. Welche Einschränkungen und Indizes sind erforderlich?
Was passiert, nachdem man google.com in den Browser eingibt und Enter drückt? Beschreiben Sie den gesamten Prozess und die Beteiligten.
Erklären Sie die Struktur des Rate Limiters und die Funktion Allow. Welche Konfigurationsparameter werden verwendet und wofür?
Was ist der Unterschied zwischen TCP und UDP? Wo wird jeder von ihnen eingesetzt?
Wo und wie wird die Funktion cleanup ausgeführt? Wie übergibt man den Kontext an den Rate Limiter?
Gibt es einen Microservice zum Abziehen von Mitteln vom Kontostand des Benutzers? Bei der Replikation des Dienstes tritt ein Race-Condition-Problem auf. Wie kann man dieses Problem lösen?
Erklären Sie Ihre Implementierung der Funktion Allow nach den Korrekturen. Wie wird der Fall der ersten Anfrage des Benutzers behandelt?
Korrigieren Sie die Implementierung von cleanup, indem Sie eine normale for-Schleife anstelle von range verwenden. Erklären Sie die endgültige Logik der Bereinigung.
Über welches Protokoll wird die DNS-Anfrage ausgeführt? Ist dies das einzige mögliche Protokoll?
Wie kann man das Problem mit Gleitkommazahlen ohne NUMERIC vermeiden? Was ist ein alternativer Ansatz mit dem Typ INT?
Schlagen Sie ein Statusmodell für Transaktionen im Zahlungsprozess vor. Wie funktioniert die Rückerstattung?
Kann die Datenübertragung per UDP garantiert werden?
Wozu dient ein Mutex in einem Rate Limiter? Kann das Problem ohne Mutex gelöst werden, indem man sync.Map verwendet?
Erklären Sie den Zahlungsprozess mit Bankkarte über das Terminal: Welche Teilnehmer sind beteiligt und wie erfolgt die Interaktion zwischen ihnen?
Warum haben Sie den Typ NUMERIC(18,2) für amount gewählt? Welche Alternativen gibt es und was ist das Problem mit DOUBLE PRECISION?
Wie organisiert man eine Hintergrund-Goroutine, um veraltete Daten aus Buckets periodisch zu bereinigen?
Was ist ein Index in PostgreSQL? Wie haben Sie mit Indizes gearbeitet und worauf haben Sie Ihre Entscheidung zur Erstellung eines Indexes gestützt?
Implementieren Sie die Logik der Funktion Allow für den Ratenbegrenzer. Wie werden Sie Ereignisse verfolgen und Limits überprüfen?