Was suchst du in einem Job, womit möchtest du dich beschäftigen?
Golang
func Copy(src io.Reader, dst io.Writer) error { //... } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) (statusCh, error) { //... go func() { statusCh }() } func Read() { select { case status := <-statusCh: } } type Stat struct { status string err error } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) go func() { statusCh{ } } return statusCh } func Read() { select { case status := <-statusCh: } } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { select { case : n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } default: statusCh <- Stat{ bCopy: total, status: "pending", err: nil, } } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } }
Es gibt eine Funktion `unpredictableFunc()`, die eingewickelt werden muss, damit sie mit einem Timeout (z.B. 1 Sekunde) ausgeführt wird und die Ausführungszeit protokolliert wird. // Es gibt eine Funktion, die unendlich lange läuft und eine Zahl zurückgibt. // Ihr Körper darf nicht verändert werden (angenommen, es ist eine Netzwerk-Anfrage im Inneren). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Die Wrapper-Funktion muss geändert werden, um mit einem festgelegten Timeout (z.B. 1 Sekunde) zu arbeiten. // Wenn die "lange" Funktion innerhalb dieser Zeit fertig ist, ist das großartig, wir geben das Ergebnis zurück. // Wenn nicht, geben wir einen Fehler zurück. Das Ergebnis der Ausführung ist in diesem Fall nicht wichtig. // // Zusätzlich muss gemessen werden, wie lange diese Funktion lief (einfach im Log ausgeben). // Die Signatur der Wrapper-Funktion kann geändert werden. func predictableFunc() int64 { return unpredictableFunc() }
In welchem Team hast du bei der Bank gearbeitet? Was war die Aufgabe des Teams?
Wie funktioniert SSL/TLS? Beschreiben Sie den Verbindungsaufbau.
Wie sind Maps in Go aufgebaut?
Was ist ein Slice in Go?
Hast du Operatoren für Kubernetes geschrieben?
Wie funktioniert context.WithTimeout im Inneren?
Was sind die Isolationsstufen von Transaktionen? Welche haben Sie verwendet?
Was wird der Code ausgeben? package main import "fmt" func main() { nums := make([]int, 1, 2) fmt.Println(nums) // appendSlice(nums, 1024) fmt.Println(nums) // mutateSlice(nums, 1, 512) fmt.Println(nums) // } func appendSlice(sl []int, val int) { sl = append(sl, val) } func mutateSlice(sl []int, idx, val int) { sl[idx] = val }
Wie überprüft man die CPU- und Speicherauslastung in Linux?
**Bedingung** Anfragen an mehrere URLs sollen parallel ausgeführt werden. HTTP-Statuscodes anzeigen, Fehler behandeln. ```go package main func main() { urls := []string{"[link]"} // Etwas tun } ```
Worin unterscheiden sich Goroutines von Betriebssystem-Threads? Wozu sind Goroutines nützlich?
Wie unterscheidest du Junior-, Middle- und Senior-Entwickler? Nach welchen Kriterien hältst du dich für einen Senior?
Wie findet man eine langsame Abfrage in PostgreSQL und wie optimiert man sie?
Erzähle mir von resp.Body.Close() — warum ist es notwendig und warum hast du einen Puffer von 10 gesetzt?
Wie viele Zeilen waren in der Datenbank?
Wie funktionieren Transaktionen in PostgreSQL und MySQL?
Schreiben Sie eine SQL-Abfrage, die **den Namen des Kunden**, seine **Stadt** und **die Gesamtsumme** aller seiner Bestellungen ausgibt. Nur Kunden, deren Gesamtausgaben **über 1000** Einheiten liegen, sollen in die Ergebnisliste aufgenommen werden. --- **Daten-Schema:** 1. **Tabelle `customers`:** - `customer_id` (int) – eindeutiger Kundenidentifikator. - `customer_name` (varchar) – Name des Kunden. - `city` (varchar) – Wohnort. 2. **Tabelle `orders`:** - `order_id` (int) – eindeutige Bestellnummer. - `customer_id` (int) – ID des Kunden, der den Kauf getätigt hat. - `total_amount` (decimal) – Betrag einer bestimmten Bestellung.