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

345

Mida otsid tööl, millega soovid tegeleda?

308

On olemas funktsioon `unpredictableFunc()`, mida tuleb ümber pakkida nii, et see töötaks ajapiiranguga (näiteks 1 sekund) ja logiks selle täitmise aja. // On olemas funktsioon, mis töötab lõpmatult ja tagastab numbri. // Selle keha ei tohi muuta (kaalume, et sees on võrgupäring). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Tuleb muuta ümbrise funktsioon, mis töötab määratud ajapiiranguga (näiteks 1 sekund). // Kui "pikk" funktsioon lõpeb selle aja jooksul, on see suurepärane, tagastame tulemuse. // Kui mitte, tagastame vea. Selle töö tulemus meid sel juhul ei huvita. // // Lisaks tuleb mõõta, kui kaua see funktsioon töötas (lihtsalt logi välja). // Ümbrise funktsiooni signatuur võib olla muudetud. func predictableFunc() int64 { return unpredictableFunc() }

291

Millises meeskonnas sa töötasid pangas? Mis oli meeskonna ülesandeks?

276

Kuidas töötab SSL/TLS? Kirjeldage ühenduse loomise protsessi.

264

Kas sa kirjutasid operaatoreid Kubernetesile?

236

Kuidas töötab context.WithTimeout sisemiselt?

231

Mis on tehingute isolatsiooni tasemed? Milliseid kasutasite?

220

Kuidas kontrollida CPU ja mälu koormust Linuxis?

216

Mis kodas parodys? 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 }

216

**Tingimus** Päringud mitmele URL-ile peaks toimuma paralleelselt. Kuvage HTTP-olekud, käsitlege vigu. ```go package main func main() { urls := []string{"[link]"} // Tee midagi } ```

212

Kas on kaalutud andmete jagamist kuumadeks (viimased 3 kuud) ja külmadeks, et vähendada koormust Elasticsearchi asemel?

207

Kuidas erinevad goroutines operatsioonisüsteemi niitidest? Milleks need on vajalikud?

206

Kuidas leida PostgreSQLis aeglane päring ja kuidas seda optimeerida?

206

Räägi mulle resp.Body.Close() kohta — miks see vajalik on ja miks sa panid 10-puhvri?

202

Kuidas sa eristad Junior, Middle ja Senior arendajad? Milliste kriteeriumide alusel sa pead end Senioriks?

202

Mis on indeksid andmebaasides? Millised on indeksite tüübid?

197
/3
Küsimused Golang ettevalmistamiseks - sobes.tech