Sobes.tech

Golang

Was suchst du in einem Job, womit möchtest du dich beschäftigen?

307

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 } } }

302

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() }

291

In welchem Team hast du bei der Bank gearbeitet? Was war die Aufgabe des Teams?

272

Wie funktioniert SSL/TLS? Beschreiben Sie den Verbindungsaufbau.

260

Hast du Operatoren für Kubernetes geschrieben?

234

Wie funktioniert context.WithTimeout im Inneren?

229

Was sind die Isolationsstufen von Transaktionen? Welche haben Sie verwendet?

217

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 }

216

Wie überprüft man die CPU- und Speicherauslastung in Linux?

214

**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 } ```

206

Worin unterscheiden sich Goroutines von Betriebssystem-Threads? Wozu sind Goroutines nützlich?

202

Wie unterscheidest du Junior-, Middle- und Senior-Entwickler? Nach welchen Kriterien hältst du dich für einen Senior?

202

Wie findet man eine langsame Abfrage in PostgreSQL und wie optimiert man sie?

202

Erzähle mir von resp.Body.Close() — warum ist es notwendig und warum hast du einen Puffer von 10 gesetzt?

198

Wie funktionieren Transaktionen in PostgreSQL und MySQL?

194

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.

194
/3