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

345

Šta tražiš u poslu, čime želiš da se baviš?

308

Postoji funkcija `unpredictableFunc()`, koju treba obuhvatiti tako da se izvršava sa timeout-om (na primer, 1 sekunda) i da se beleži vreme izvršenja. // Postoji funkcija koja radi neograničeno dugo i vraća broj. // Nije dozvoljeno menjati njen sadržaj (pretpostavimo da je unutar mrežni zahtev). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Potrebno je izmeniti funkciju za obuhvat, koja će raditi sa zadatim timeout-om (na primer, 1 sekunda). // Ako "duga" funkcija završi u tom vremenu, odlično, vraćamo rezultat. // Ako ne, vraćamo grešku. Rezultat rada u tom slučaju nije važan. // // Takođe, treba izmeriti koliko je vremena trajalo izvršenje ove funkcije (jednostavno ispisati u log). // Potpis funkcije za obuhvat može biti izmenjen. func predictableFunc() int64 { return unpredictableFunc() }

291

У којем тиму си радио у банци? Шта је био задатак тима?

276

Kako funkcioniše SSL/TLS? Opisati proces uspostavljanja veze.

264

Da li ste pisali operatore za Kubernetes?

234

Kako funkcioniše unutar context.WithTimeout?

229

Šta su nivoi izolacije transakcija? Koje ste koristili?

220

Kako proveriti opterećenje CPU i memorije u Linuxu?

216

Šta će prikazati kod? 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

**Uslov** Zahtevi ka više URL-ova treba da se izvršavaju paralelno. Prikažite HTTP status kodove, obradite greške. ```go package main func main() { urls := []string{"[link]"} // Uradi nešto } ```

208

Čime se goroutines razlikuju od niti operativnog sistema? Čemu služe goroutines?

206

Da li je razmatrana podela podataka na vruće (poslednja 3 meseca) i hladne za smanjenje opterećenja umesto Elasticsearch-a?

205

Kako pronaći sporo upit u PostgreSQL i kako ga optimizovati?

204

Kako razlikuješ Junior, Middle i Senior developere? Po kojim kriterijumima smatraš sebe Seniorom?

202

Ispričaj o resp.Body.Close() — zašto je to potrebno i zašto si postavio bafer od 10?

202

Колико редова је било у бази података?

197

Напишите SQL-запрос, который выведет **имя клиента**, его **город** и **общую сумму** всех его заказов. В итоговую выборку должны попасть только те клиенты, суммарные траты которых составляют **более 1000** у.е. --- **Схема данных:** 1. **Таблица `customers`:** - `customer_id` (int) – уникальный идентификатор клиента. - `customer_name` (varchar) – имя клиента. - `city` (varchar) – город проживания. 2. **Таблица `orders`:** - `order_id` (int) – уникальный номер заказа. - `customer_id` (int) – ID клиента, совершившего покупку. - `total_amount` (decimal) – сумма конкретного заказа.

196
/3