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

348

Ishda nima qidiryapsiz, nima bilan shug'ullanishni xohlaysiz?

308

`unpredictableFunc()` funksiyasını bükmək lazımdır ki, o, vaxt limiti ilə (məsələn, 1 saniyə) işləsin və icra vaxtını qeyd etsin. // Sonsuz işləyən və ədəd qaytaran funksiya var. // Onun gövdəsini dəyişdirmək olmaz (daxildə şəbəkə sorğusu olduğunu fərz edək). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Bu funksiyanı əhatə edən funksiyanı dəyişdirmək lazımdır, o, müəyyən edilmiş vaxt limiti ilə işləyəcək (məsələn, 1 saniyə). // Əgər "uzun" funksiya bu vaxt ərzində işləyibsə, çox yaxşı, nəticəni qaytarırıq. // Əks halda, səhv qaytarırıq. Bu halda işləmə nəticəsi bizim üçün vacib deyil. // // Əlavə olaraq, bu funksiyanın nə qədər işlədiyini ölçmək lazımdır (sadəcə logda göstərin). // Əhatə edən funksiyanın imzasını dəyişmək olar. func predictableFunc() int64 { return unpredictableFunc() }

293

Bankda qaysi jamoada ishladingiz? Jamoaning vazifasi nima edi?

278

SSL/TLS qanday ishlaydi? Ulanishni o'rnatish jarayonini tavsiflang.

264

Siz Kubernetes uchun operatorlar yozdingizmi?

236

context.WithTimeout ichki tuzilishi qanday ishlaydi?

231

Tranzaktsiya izolyatsiya darajalari nima? Qaysilarini ishlatdingiz?

220

Linuxda CPU va xotira yuklamasini qanday tekshirish mumkin?

216

Kod nima chiqaradi? 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

**Shart** Bir nechta URLga so'rovlar parallel ravishda bajarilishi kerak. HTTP holat kodlarini ko'rsatish, xatolarni boshqarish. ```go package main func main() { urls := []string{"[link]"} // Biror narsa qilish } ```

212

Goroutinlar operatsion tizim iplaridan qanday farq qiladi? Goroutinlar nima uchun kerak?

208

Yukni kamaytirish uchun Elasticsearch o'rniga ma'lumotlarni issiq (so'nggi 3 oy) va sovuqga bo'lishni o'ylab ko'rdingizmi?

207

PostgreSQL'da sekin so'rovni qanday topish va uni qanday optimallashtirish mumkin?

206

resp.Body.Close() haqida gapir — nima uchun kerak va nima uchun 10 ta buffer o'rnatding?

202

Qanday qilib Junior, Middle va Senior dasturchilarni ajratasiz? Qaysi mezonlarga ko'ra o'zingizni Senior deb hisoblaysiz?

202

Ma'lumotlar bazasida nechta satr bor edi?

197

Ma'lumotlar bazalarida indekslar nima? Qanday turdagi indekslar mavjud?

197
/3