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
O que procuras no trabalho, com o que queres trabalhar?
Há uma função `unpredictableFunc()`, que precisa de ser envolvida para que seja executada com um limite de tempo (por exemplo, 1 segundo) e registar o tempo de execução. // Existe uma função que funciona indefinidamente e devolve um número. // O seu corpo não pode ser alterado (suponha que dentro há uma requisição de rede). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // É necessário modificar a função de envolvimento, que irá trabalhar com um limite de tempo definido (por exemplo, 1 segundo). // Se a "função longa" terminar dentro desse tempo, ótimo, devolvemos o resultado. // Caso contrário, devolvemos um erro. O resultado da execução nesse caso não nos importa. // // Além disso, é necessário medir quanto tempo essa função esteve em execução (basta imprimir no log). // A assinatura da função de envolvimento pode ser alterada. func predictableFunc() int64 { return unpredictableFunc() }
Em que equipa trabalhaste no banco? O que fazia a equipa?
Como funciona o SSL/TLS? Descreva o processo de estabelecimento da conexão.
Como são estruturados os mapas em Go?
O que é um slice em Go?
Escreveste operadores para Kubernetes?
Como funciona o context.WithTimeout por dentro?
Quais são os níveis de isolamento de transações? Quais você usou?
O que o código irá mostrar? 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 }
Como verificar a carga da CPU e memória no Linux?
**Condição** As solicitações a vários URLs devem ser feitas em paralelo. Exibir os status HTTP, tratar erros. ```go package main func main() { urls := []string{"[link]"} // Fazer algo } ```
Foi considerada a divisão de dados em quentes (últimos 3 meses) e frios para reduzir a carga em vez do Elasticsearch?
Em que as goroutines diferem dos threads do sistema operacional? Para que servem as goroutines?
Como encontrar uma consulta lenta no PostgreSQL e como otimizá-la?
Como distingues desenvolvedores Junior, Middle e Senior? Quais critérios usas para te considerares Senior?
Fala sobre resp.Body.Close() — por que é necessário e por que colocou um buffer de 10?
Como funcionam as transações no PostgreSQL e MySQL?
Quantas linhas havia na base de dados?