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

341

İşdə nə axtarırsan, nə ilə məşğul olmaq istəyirsən?

307

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

291

Bankda hansı komandada işləyirdin? Komanda nə ilə məşğul olurdu?

274

SSL/TLS necə işləyir? Bağlantının qurulma prosesini təsvir edin.

264

Kubernetes üçün operatorlar yazmısınızmı?

234

context.WithTimeout daxili necə işləyir?

229

Əməliyyatların izolasiya səviyyələri nədir? Hansını istifadə etmisiniz?

219

Kod nə göstərəcək? 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

Linux-da CPU və yaddaş yüklənməsini necə yoxlamaq olar?

214

Goroutine-lər əməliyyat sistemi iplərindən necə fərqlənir? Goroutine-lər nə üçün lazımdır?

206

**Şərt** Bir neçə URL-ə sorğular paralel şəkildə həyata keçirilməlidir. HTTP status kodlarını göstərin, səhvləri idarə edin. ```go package main func main() { urls := []string{"[link]"} // Nə isə et } ```

206

Yükü azaltmaq üçün Elasticsearch yerinə məlumatların isti (son 3 ay) və soyuq bölünməsini nəzərdən keçirdinizmi?

205

Junior, Middle və Senior inkişaf etdiriciləri necə fərqləndirirsən? Özünü Senior kimi hansı meyarlarla hesab edirsən?

202

PostgreSQL-də yavaş sorğunu necə tapmaq və onu necə optimallaşdırmaq olar?

202

resp.Body.Close() haqqında danış — niyə lazımdır və niyə 10-luq tampon qoymusunuz?

200

Verilənlər bazasında neçə sətir var idi?

197

SQL sorğusunu yazın, **müştəri adını**, onun **şəhərini** və **bütün sifarişlərinin ümumi məbləğini** göstərəcək. Yekun nəticəyə yalnız **ümumi xərcləri 1000-dən çox olan** müştərilər daxil edilməlidir. --- **Məlumat sxeması:** 1. **`customers` cədvəli:** - `customer_id` (int) – müştərinin unikal identifikatoru. - `customer_name` (varchar) – müştərinin adı. - `city` (varchar) – yaşadığı şəhər. 2. **`orders` cədvəli:** - `order_id` (int) – unikal sifariş nömrəsi. - `customer_id` (int) – alış-veriş edən müştərinin ID-si. - `total_amount` (decimal) – müəyyən bir sifarişin məbləği.

196
/3