Golang
Qual é a ordem de iteração dos elementos em um map em Go? (fixa de acordo com algum algoritmo / arbitrária, determinada em tempo de compilação / arbitrária, determinada em tempo de execução)
Pode explicar o que se entende por termo User Manager?
Explique o conceito de dividir tarefas entre vários threads ou processos para otimizar o funcionamento do sistema. O que significa o termo Work-Sharing?
Quais são as vantagens e desvantagens da parte do servidor da aplicação?
Qual é a finalidade da ferramenta pickup no processo de desenvolvimento?
Quais mecanismos garantem a resistência do Kafka a falhas e perda de dados?
Em que casos uma goroutine termina a sua execução e passa o controlo para outra?
Quais mecanismos são utilizados para a cópia assíncrona de dados entre bancos de dados?
Pode-se adicionar um elemento a uma slice que ainda não foi criada ou inicializada?
Que métodos e ferramentas conhece para implementar a programação genérica nos seus projetos?
Como é organizada a estrutura do array na memória e como ocorre o acesso aos seus elementos?
Tem alguma pergunta para nós?
Como é que a estrutura orientada a objetos é implementada na linguagem Go e como ela difere da clássica?
Pode explicar o que é o operador SELECT em SQL e para que é utilizado?
Para que tarefas são usadas operações atômicas na programação?
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 } } }
Como pode-se recolher e processar os resultados de cinco goroutines executadas simultaneamente?
Existem prazos ou já há ofertas?
O que é um linter em Go?
Como funciona a função copy na linguagem Go e em que casos o seu uso é justificado?