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: } }
Golang
რა გსურს სამუშაოში, რა გინდა დაკავდე?
`unpredictableFunc()` ფუნქციას უნდა შევკრათ ისე, რომ ის შესრულდეს დროის შეზღუდვით (მაგალითად, 1 წამი) და ჩაწეროს შესრულების დრო. // არსებობს ფუნქცია, რომელიც უსასრულოდ მუშაობს და აბრუნებს რიცხვს. // მისი სხეული არ შეიძლება შეიცვალოს (წარმოიდგინეთ, რომ შიგნით არის ქსელური მოთხოვნა). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // საჭიროა შეცვალოთ შემკრავი ფუნქცია, რომელიც იმუშავებს მითითებულ დროის შეზღუდვით (მაგალითად, 1 წამი). // თუ "გრძელი" ფუნქცია ამ დროს დასრულდა, მშვენიერია, ვუბრუნებთ შედეგს. // თუ არა, ვუბრუნებთ შეცდომას. ამ შემთხვევაშიც, შედეგი არ არის მნიშვნელოვანი. // // ასევე, საჭიროა ზომა რამდენი დრო დასჭირდა ამ ფუნქციის შესრულებას (სრულიად შესაძლებელია, უბრალოდ გამოიტანეთ ლოგში). // შემკრავი ფუნქციის სიგნატურას შეიძლება შეიცვალოს. func predictableFunc() int64 { return unpredictableFunc() }
ბანკში რომელ გუნდში მუშაობდი? რა იყო გუნდის მიზანი?
როგორ მუშაობს SSL/TLS? აღწერეთ კავშირის დამყარების პროცესი.
როგორ არის მოწყობილი map-ები Go-ში?
რა არის slice Go-ში?
კონკრეტულად Kubernetes-ისთვის ოპერატორებს დაწერეთ?
როგორ მუშაობს context.WithTimeout-ის შიგნით?
მონაცემების გაყოფა ცხელი (ბოლო 3 თვე) და ცივი განაწილება გამოთვლითი დატვირთვის შესამცირებლად Elasticsearch-ის ნაცვლად განიხილებოდა?
რა არის ტრანზაქციების იზოლაციის დონეები? რომელებს იყენებდი?
რა აჩვენებს კოდი? 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 }
როგორ შემოწმოთ CPU და მეხსიერების დატვირთვა Linux-ში?
**შარტი** რამდენიმე URL-ის მოთხოვნები უნდა შესრულდეს პარალელურად. გამოიტანეთ HTTP სტატუსები, მართეთ შეცდომები. ```go package main func main() { urls := []string{"[link]"} // რამე გააკეთე } ```
როგორ განსხვავდება გორუტინები ოპერაციული სისტემის ნაკადებისგან? რა სარგებლობა აქვს გორუტინებს?
როგორ იპოვოთ PostgreSQL-ში ნელი სარეკლამო და როგორ გავაუმჯობესოთ იგი?
როგორ განასხვავებ ჯუნიორ, მედი და სინიორ დეველოპერებს? რა კრიტერიუმებით მიიჩნევ თავს სინიორად?
resp.Body.Close() შესახებ ისაუბრე — რატომ არის ეს საჭირო და რატომ დაყენე ბუფერი 10?
რა არის ინდექსები მონაცემთა ბაზებში? რა ტიპის ინდექსები არსებობს?
როგორ მუშაობს ტრანზაქცია PostgreSQL და MySQL-ში?