Golang
Was passiert, wenn man 5 Billionen Goroutines startet? Wie optimieren?
Bei welcher Variante der Typumwandlung ist Panik möglich und welche Konstruktion ermöglicht es, sie zu vermeiden?
Welche Nachteile hat es, eine Entität über den Kontext in Go zu übergeben?
Warum bist du auf den Markt getreten und was ist jetzt bei der Wahl eines neuen Arbeitgebers oder Projekts wichtig? Gibt es einen prinzipiellen Unterschied zwischen Fintech und Einzelhandel?
Haben Sie Echtzeit-Analysen erstellt oder welche Ziele verfolgten Sie ursprünglich?
Welchen Einfluss hast du auf frühere Projekte gehabt?
Warum Go? Wo hast du angefangen, wie bist du zu dieser Sprache gekommen?
Welche Synchronisationsprimitive für Goroutines gibt es in Go?
Welche Synchronisationsmittel in Go kennst du?
Was wissen Sie über das Unternehmen VES?
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.
Wie haben Sie den Prozess mit Analytik beeinflusst?
Was ist der Kontext in Go und wozu ist er nützlich?
Woran haben Sie am häufigsten gearbeitet? Welche Technologien haben Sie verwendet?
Kannst du in einem der defer einen Panik behandeln?
Kann man während des Evakuierungsprozesses Elemente in eine Karte hinzufügen oder entfernen?
Verwendeten Sie sowohl gRPC als auch REST oder nur gRPC?
Warum ist das eine technisch schwierige Aufgabe? Warum nicht einfach eine Funktion mit 100 Zeilen?
Was ist Tracing? Wie führt man es durch?
Angenommen, es gibt ein sortiertes Array von Zahlen, das doppelte Elemente enthält. Entfernen Sie die Duplikate in-place (direkt im ursprünglichen Array) und geben Sie die Größe des resultierenden Arrays zurück. Beispiel: Eingabe: nums = [0,0,1,1,1,2,2,3,3,4] Ausgabe: 5, nums = [0,1,2,3,4,_,_,_,_,_] Erläuterung: In diesem Array gibt es 5 eindeutige Elemente. Platzieren Sie sie in den ersten fünf Positionen des ursprünglichen Arrays und geben Sie die Zahl 5 zurück. Die nachfolgenden Elemente im ursprünglichen Array können beliebig sein.