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

354

O que procuras no trabalho, com o que queres trabalhar?

309

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

295

Em que equipa trabalhaste no banco? O que fazia a equipa?

280

Como funciona o SSL/TLS? Descreva o processo de estabelecimento da conexão.

264

Como funciona o context.WithTimeout por dentro?

231

Quais são os níveis de isolamento de transações? Quais você usou?

220

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 }

218

Como verificar a carga da CPU e memória no Linux?

216

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

214

Foi considerada a divisão de dados em quentes (últimos 3 meses) e frios para reduzir a carga em vez do Elasticsearch?

209

Em que as goroutines diferem dos threads do sistema operacional? Para que servem as goroutines?

208

Como encontrar uma consulta lenta no PostgreSQL e como otimizá-la?

206

Como distingues desenvolvedores Junior, Middle e Senior? Quais critérios usas para te considerares Senior?

204

Fala sobre resp.Body.Close() — por que é necessário e por que colocou um buffer de 10?

202

Como funcionam as transações no PostgreSQL e MySQL?

198
/3