Golang
Wie löst man das Problem verlorener Nachrichten und fehlender Liefergarantie bei Redis pub/sub für Schach?
Wie findest du die Arbeit mit Produktgeschichten und deren Einfluss auf die Nutzerkennzahlen?
Mussten Sie jemals in C programmieren?
Erzählen Sie mir von sich und Ihrer Erfahrung
Wie findet man Anagramme eines Wortes im Wörterbuch?
Was ist ein Kanal in Go und was sind seine Hauptanwendungsbereiche?
Welcher Fehler tritt auf, wenn man versucht, ein Zeichen in einer Zeichenkette zu ändern: Panik, eine behandelte Fehler oder etwas anderes?
Was ist das Signal SIGTERM (kill -15) und warum ist es besser, es anstelle von SIGKILL (kill -9) zu verwenden?
Was sind die Isolationsstufen von Transaktionen? Welche haben Sie verwendet?
Erinnern Sie sich an eine Situation aus Ihrer vorherigen Erfahrung, in der Sie gesehen haben, dass eine vom Teamleiter oder Architekten vorgeschlagene architektonische Lösung nicht optimal war. Was haben Sie in einer solchen Situation gemacht? Haben Sie Ihre Meinung irgendwie verteidigt?
Kann man RPC über REST implementieren und umgekehrt? Was ist der grundlegende Unterschied?
Was passiert, wenn die Kapazität eines Slices erschöpft ist und ein weiteres Element hinzugefügt wird?
Was sind die Unterschiede zwischen HTTP/1, HTTP/2 und HTTP/3?
Wer gehörte neben dir und dem Teamleiter noch zum Team?
Wer gehört in Bezug auf die Größe zum Team?
Was liegt Ihnen näher – Produktentwicklung oder Infrastrukturentwicklung?
Wie aktiv ist die Suche momentan? Überlegen Sie schon, [Firma] zu verlassen, oder schauen Sie sich nur interessante Angebote an?
Aktualisierungen von Dokumenten werden an den Dienst gesendet message Document { string Url = 1; // URL des Dokuments, seine eindeutige Kennung uint64 PubDate = 2; // deklarierte Veröffentlichungszeit des Dokuments uint64 FetchTime = 3; // Empfangszeit dieser Dokumentenaktualisierung, kann als Versionskennung betrachtet werden. Das Paar (Url, FetchTime) ist eindeutig. string Text = 4; // Text des Dokuments uint64 FirstFetchTime = 5; // initially absent, must be filled } Dokumente können in beliebiger Reihenfolge eintreffen (nicht in der Reihenfolge, in der sie aktualisiert wurden), und es können doppelte Nachrichten vorhanden sein. Es ist notwendig, in der Ausgabe gleiche Nachrichten zu erstellen, aber mit korrigierten Feldern nach den folgenden Regeln (alles unten gilt für eine Gruppe von Dokumenten mit demselben Feld Url): Das Feld Text und FetchTime sollten so sein wie bei dem Dokument mit der größten FetchTime, die bisher empfangen wurde. Das Feld PubDate sollte so sein wie bei der Nachricht mit der kleinsten FetchTime. Das Feld FirstFetchTime sollte den minimalen FetchTime-Wert haben. Das heißt, zu jedem Zeitpunkt nehmen wir PubDate und FirstFetchTime vom ersten Version, die bisher empfangen wurde (wenn man sie nach FetchTime sortiert), und Text von der letzten. Die Schnittstelle im Code kann so implementiert werden: type Processor interface { Process(doc *Document) (*Document, error) } Dieser Code wird in einem Dienst funktionieren, der Nachrichten aus einer Warteschlange liest (Kafka oder ähnlich), und auch das Ergebnis in die Warteschlange schreibt. Wenn Process Null zurückgibt, wird nichts in die Warteschlange geschrieben.
Zeigt dir pprof immer einen Speicherleck oder eine Überschreitung des Limits an?
Erzählen Sie kurz, was Sie bei Ihren vorherigen Arbeitsstellen gemacht haben und welche Funktionen Sie umgesetzt haben.