Golang
Jaký je pořadí průchodu prvky v mapě v Go? (pevně stanovené podle určitého algoritmu / libovolné, určeno při kompilaci / libovolné, určeno při běhu)
Můžete vysvětlit, co se rozumí pod pojmem User Manager?
Vysvětlete koncept rozdělení úkolů mezi více vláken nebo procesy pro optimalizaci práce systému. Co znamená termín Work-Sharing?
Jaké jsou výhody a nevýhody serverové části aplikace?
Jaký je účel utility pickup v procesu vývoje?
Jaké mechanismy zajišťují odolnost Kafka vůči poruchám a ztrátě dat?
Za jakých okolností jedna gorutina ukončí vykonávání a předá řízení jiné?
Jaké mechanismy umožňují asynchronní kopírování dat mezi databázemi?
Lze přidat prvek do slice, který ještě nebyl vytvořen nebo inicializován?
Jaké metody a nástroje znáte pro implementaci obecného programování ve svých projektech?
Jak je v paměti organizována struktura pole a jak je přistupováno k jejím prvkům?
Máš u nás nějaké otázky?
Jak je v jazyce Go implementována objektově orientovaná struktura a jak se liší od klasické?
Můžete vysvětlit, co je operátor SELECT v SQL a k čemu slouží?
Pro jaké úkoly se v programování používají atomové operace?
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 } } }
Jak shromáždit a zpracovat výsledky pěti současně spuštěných gorutin?
Existují termíny nebo již nabídky?
Co je to linter v Go?
Jak funguje funkce copy v jazyce Go a v jakých případech je její použití oprávněné?