```go func main() { wg := sync.WaitGroup{} for i := 0; i < 10; i++ { wg.Add(1) go func(wg sync.WaitGroup) { defer wg.Done() fmt.Println(i) }(wg) } wg.Wait() fmt.Println("some text") time.Sleep(1 * time.Minute) fmt.Println("some text2") } ```
Golang
Erzähl mir mehr über die Geschichte der Optimierung der Berichtsgeschwindigkeit: Was hast du gemacht, womit hast du dich auseinandergesetzt, welche Schwierigkeiten gab es, wie hast du sie gelöst?
Wo ist es am besten, die Schnittstelle zu deklarieren — am Ort der Implementierung oder am Ort des Verbrauchs?
Erzähle mir von deiner Erfahrung, interessanten Aufgaben, woran du gerne arbeitest, worauf du stolz bist.
Wird die Ausgabereihenfolge von 100 Goroutines bei jedem Start gleich sein? Wovon hängt das ab?
Erzähl mir kurz etwas über dich
Angenommen, die Aufgabe ist in Go Version 1.18. Was ändert sich im Verhalten des Programms?
Kennst du die Architektur von Kubernetes, welche Entitäten gibt es, was ist die Control Plane?
Was ist der Unterschied zwischen den Engines MergeTree, ReplicatedMergeTree und Distributed in ClickHouse?
Wie optimiert man eine schwere analytische SQL-Abfrage in einer großen Produktionsdatenbank?
Was würdest du tun, wenn du eine architektonische Lösung vorschlägst, aber der Tech Lead nicht einverstanden ist und du dir sicher bist, im Recht zu sein?
Wie funktioniert das Moderationssystem zur Erkennung von verbotenen Inhalten, einschließlich ähnlicher Bilder?
Wie ist es möglich, mehrere isolierte Umgebungen auf einer einzelnen lokalen Maschine (Docker/Containerisierung) auszuführen?
Was sehen wir auf dem Bildschirm beim Start des Programms, wenn wir den Bug mit wg (Zeiger übergeben) beheben?
Wie kann man dafür sorgen, dass in der fünften Zeile die durch append hinzugefügte Einheit ebenfalls sichtbar ist? Ohne die Signatur der Funktion fill zu ändern.
```go func main() { wg := sync.WaitGroup{} wg.Add(8) for i := 0; i < 10; i++ { go func(wg *sync.WaitGroup, i int) { defer wg.Done() fmt.Println(i) }(&wg,i) } wg.Wait() fmt.Println("some text") time.Sleep(1 * time.Minute) fmt.Println("some text2") } ```
Wodurch konnte die Bearbeitungszeit von Operationen von 120 auf 5 Sekunden reduziert werden?