Sobes.tech

Golang

Wie werden in Go panische Zustände und die Fehlerbehandlung bei Notfallsituationen implementiert?

Junior — Middle
Lamoda Tech
Магнит Тех
Самокат Тех
+1
134

Was genau wurde nach der Entdeckung mit den Duplikaten gemacht? Wo wurden sie gereinigt?

Middle+
ВайлдберрисВайлдберрис
134

Welche Methoden und Werkzeuge haben Sie verwendet, um die Ursachen von Belastungsproblemen in den Systemen zu analysieren und zu bestimmen?

Junior — Middle
Indrive
134

Welche Befehle verwendest du normalerweise im Linux-Betriebssystem?

Junior — Middle
Mail.ruMail.ru
134

Welche Ansätze können verwendet werden, um die Thread-Sicherheit beim Arbeiten mit Slices in einer Multithread-Umgebung zu gewährleisten?

Middle — Middle+
Betera Group
134

Welche Operationen sind bei der Arbeit mit einem nil-Slice in der Programmiersprache erlaubt?

Junior — Middle
Кадровое агентство BWG
134

Erzählen Sie von einer schwierigen Aufgabe, die Sie durch das Schreiben eines Skripts für das Linux-System lösen konnten

Junior — Middle
Mail.ruMail.ru
134

Wie kann man die Menge der im Cache gespeicherten Daten regulieren?

Junior — Middle
КасперскийКасперский
134

Bereitschaft, die Rolle des einzigen Backend-Spezialisten im Team zu übernehmen

Junior — Middle
FAQ media holding
134

Was ist der Hauptgrund für die Verwendung des Typs sync.Map in Go?

Junior — Middle
YadroYadro
134

Welche guten Praktiken und Antipatterns gibt es im Unit-Testing? Wie erkennt man, dass Tests gut sind?

Middle+
X5
134

Welche Vor- und Nachteile hat die Verwendung von Caching in Systemen?

Junior — Middle
КасперскийКасперский
134

func Exclude(a, b []int) []int { set := make(map[int]struct{}) for _, v := range b { set[v] = struct{}{} } result := make([]int, 0) for _, v := range a { if _, ok := set[v]; !ok { result = append(result, v) } } return result } Kompilierungsfehler # command-line-arguments ./main.go:39:32: Syntaxfehler: unerwarteter Zeilenumbruch, es wurde { nach der if-Anweisung erwartet

Senior
OZONOZON
134

Haben Sie schon einmal Schwierigkeiten bei der Implementierung von Interaktionen zwischen verschiedenen Diensten gehabt?

Junior — Middle
Mail.ruMail.ru
134

Wie erfolgt die Übergabe eines Slices an eine Funktion in einer Programmiersprache?

Junior — Middle
МТС DigitalМТС Digital
134

Was ist das Saga-Muster?

Middle+
Magnit Tech
134

Warum haben sie keine Testcontainers genommen?

Senior
OkkoOkko
134

/* Wir müssen Daten von einer Quelle zu einem Verbraucher übertragen. Die Quelle liefert die Daten in kleinen Chargen (~zehn Einträge), während der Verbraucher effizienter mit größeren Chargen arbeitet. Ein echtes Beispiel ist die Übertragung von Daten aus Kafka-Queues in die Clickhouse-Datenbank. Quelle: - Praktisch unendlich. - Die Quelle gibt nie mehr als MaxItems Datensätze in einem einzelnen Next-Aufruf zurück. - Innerhalb einer "Sitzung" (einem Aufruf der Funktion Pipe) liefert die Quelle bei jedem Next neue Daten. - Nach einem Neustart beginnt die Quelle wieder bei der vorherigen "bestätigten" Position, die durch cookie bestimmt wird. Daher muss jeder Wert von cookie, den Next zurückgibt, nach der Speicherung der Daten im Empfänger mit einem Commit bestätigt werden, und zwar in genau der Reihenfolge, in der sie von Next zurückgegeben wurden. Empfänger: - Kann nicht mehr als MaxItems auf einmal verarbeiten. Basisebene: Es ist erforderlich, die Funktion func Pipe(p Producer, c Consumer) error zu implementieren, die Daten aus der Quelle liest, sie in einen Puffer mit maximaler Größe MaxItems gruppiert und im Empfänger speichert, und anschließend den Fortschritt in der Quelle bestätigt. */ const MaxItems = 9999 type Producer interface { // Next gibt zurück: // - einen Batch von Items zur Verarbeitung // - eine cookie, die nach Abschluss der Verarbeitung bestätigt werden soll // - einen Fehler Next() (items []any, cookie int, err error) // Commit wird verwendet, um den Datenbatch als verarbeitet zu markieren Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

Middle
Яндекс
134

Ist eine Tabelle mit (id PRIMARY KEY, data JSON) ein guter PostgreSQL-Index für die Suche nach Schlüssel?

Middle+
МВидеоМВидео
134

Was ist der Unterschied zwischen Virtualisierung und Containerisierung?

Middle
YadroYadro
134
/412