Sobes.tech

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

345

Wat zoek je in een baan, waarmee wil je bezig zijn?

307

Er is een functie `unpredictableFunc()`, die moet worden omhuld zodat deze wordt uitgevoerd met een timeout (bijvoorbeeld 1 seconde) en de uitvoeringstijd wordt gelogd. // Er is een functie die ononderbroken werkt en een getal retourneert. // De inhoud ervan mag niet worden gewijzigd (stel dat er een netwerkverzoek binnenin is). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // De wrapperfunctie moet worden aangepast, zodat deze werkt met een ingestelde timeout (bijvoorbeeld 1 seconde). // Als de "lange" functie binnen die tijd klaar is, is dat geweldig, we geven het resultaat terug. // Zo niet, dan geven we een fout terug. Het resultaat van deze uitvoering is in dat geval niet belangrijk. // // Daarnaast moet worden gemeten hoe lang deze functie heeft geduurd (gewoon in de log zetten). // De handtekening van de wrapperfunctie mag worden gewijzigd. func predictableFunc() int64 { return unpredictableFunc() }

291

In welk team heb je bij de bank gewerkt? Waar hield het team zich mee bezig?

274

Hoe werkt SSL/TLS? Beschrijf het proces van het tot stand brengen van de verbinding.

264

Heb je operators geschreven voor Kubernetes?

234

Wat zijn de isolatieniveaus van transacties? Welke heb je gebruikt?

219

Wat zal de code tonen? 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

Hoe controleer je de CPU- en geheugenbelasting in Linux?

214

Hoe verschillen goroutines van OS-threads? Waarvoor zijn goroutines nodig?

206

**Voorwaarde** Verzoeken naar meerdere URL's moeten parallel worden uitgevoerd. HTTP-statussen weergeven, fouten afhandelen. ```go package main func main() { urls := []string{"[link]"} // Doe iets } ```

206

Is het verdelen van gegevens in hot (laatste 3 maanden) en koud om de belasting te verminderen in plaats van Elasticsearch overwogen?

205

Hoe onderscheid je Junior, Middle en Senior ontwikkelaars? Op basis van welke criteria beschouw je jezelf als Senior?

202

Hoe vind je een langzame query in PostgreSQL en hoe optimaliseer je deze?

202

Vertel over resp.Body.Close() — waarom is het nodig en waarom heb je een buffer van 10 ingesteld?

200

Schrijf een SQL-query die **de naam van de klant**, zijn **stad** en **het totale bedrag** van al zijn bestellingen weergeeft. Alleen klanten wiens totale uitgaven **meer dan 1000** eenheden bedragen, moeten worden opgenomen in de uiteindelijke selectie. --- **Dataraster:** 1. **Tabel `customers`:** - `customer_id` (int) – unieke identificator van de klant. - `customer_name` (varchar) – naam van de klant. - `city` (varchar) – woonplaats. 2. **Tabel `orders`:** - `order_id` (int) – unieke bestelnummer. - `customer_id` (int) – ID van de klant die de aankoop heeft gedaan. - `total_amount` (decimal) – bedrag van een specifieke bestelling.

196
/3