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 } } }
Golang
Wat zoek je in een baan, waarmee wil je bezig zijn?
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() }
In welk team heb je bij de bank gewerkt? Waar hield het team zich mee bezig?
Hoe werkt SSL/TLS? Beschrijf het proces van het tot stand brengen van de verbinding.
Hoe zijn maps in Go opgebouwd?
Wat is een slice in Go?
Heb je operators geschreven voor Kubernetes?
Hoe werkt context.WithTimeout intern?
Wat zijn de isolatieniveaus van transacties? Welke heb je gebruikt?
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 }
Hoe controleer je de CPU- en geheugenbelasting in Linux?
Hoe verschillen goroutines van OS-threads? Waarvoor zijn goroutines nodig?
**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 } ```
Is het verdelen van gegevens in hot (laatste 3 maanden) en koud om de belasting te verminderen in plaats van Elasticsearch overwogen?
Hoe onderscheid je Junior, Middle en Senior ontwikkelaars? Op basis van welke criteria beschouw je jezelf als Senior?
Hoe vind je een langzame query in PostgreSQL en hoe optimaliseer je deze?
Vertel over resp.Body.Close() — waarom is het nodig en waarom heb je een buffer van 10 ingesteld?
Hoeveel regels waren er in de database?
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.