Golang
Für welche Aufgaben haben Sie Goroutines und Kanäle verwendet?
Welche Eigenschaften müssen die Schlüssel in einer Map in Go haben?
Welche Zahlungsmethoden hast du in Fiat integriert?
Hast du irgendwelche Kurse besucht?
Ist Go eine objektorientierte oder strukturierte Sprache? Gehen Sie die grundlegenden Prinzipien der OOP (Kapselung, Polymorphismus, Vererbung, Abstraktion) durch und zeigen Sie, wie sie in Go umgesetzt werden.
Es gibt ein Problem mit der Thread-Sicherheit: Wenn zwei Goroutines gleichzeitig Lock mit einer Schleife aufrufen, können sie sich vermischen. Wie kann man das beheben?
Erzählen Sie vom Initialisierungsprozess des Linux-Betriebssystems: Init-Prozess (PID 1), Bootloader und initramfs.
Was ist Panik, wie behandelt man sie, kann man sie fangen?
Wie beendet man einen Kontext in einer Goroutine korrekt?
Haben Sie schon einmal erlebt, dass Ihnen eine Aufgabe gestellt wurde, Sie mit der Arbeit begonnen haben, aber im Verlauf festgestellt haben, dass die Anforderungen widersprüchlich oder technisch unmöglich innerhalb der Frist umzusetzen sind? Was haben Sie in einem solchen Fall getan?
Wie wird OOP in Go umgesetzt?
Was suchst du jetzt für dich selbst, was ist dir wichtig?
Wie ist eine Map in Go aufgebaut? Erzählen Sie über die interne Struktur, Buckets, Kollisionen.
Wann wird der Garbage Collector gestartet? Gibt es spezielle Haltepunkte zu bestimmten Zeiten?
Wofür werden JWT-Tokens verwendet?
Wie ist die algorithmische Komplexität der binären Suche in einem sortierten Array? (O(1) / O(log n) / O(n) / O(n^2))
Du verbindest zwei Tabellen und führst eine Aggregation durch, in diesem Moment ändern sich diese Daten — was wird passieren?
Welche Indizes kennen Sie in der Datenbank? Welche Funktionen wurden verwendet?
Erzählen Sie mir vom Profiling von Diensten in Go — wie sieht der Debugging- und Engpass-Suchprozess aus?
// 2 func merge(chans ...chan int) <-chan int { panic("not implemented") } func main() { a,b,c := make(chan int), make(chan int), make(chan int) out := merge(a,b,c) go func(){ for v := range out { println(v) } }() a <- 1 a <- 2 a <- 3 b <- 4 c <- 5 close(c) a <- 6 } Implementieren Sie die Funktion merge, die mehrere Kanäle von Ganzzahlen übernimmt und einen einzelnen Kanal zurückgibt, der die Werte aller Eingabekanäle zusammenführt. Der zusammengeführte Kanal sollte geschlossen werden, wenn alle Eingabekanäle geschlossen sind.