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

246

Bir fonksiyon var `unpredictableFunc()`, onu zaman aşımına uğrayacak şekilde (örneğin 1 saniye) sarmak ve çalışma süresini kaydetmek gerekiyor. // Sonsuz süre çalışan ve sayı döndüren bir fonksiyon var. // Gövdesini değiştirmemize izin yok (içinde bir ağ isteği olduğunu varsayalım). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Sarma fonksiyonunu değiştirmemiz gerekiyor, bu fonksiyon belirli bir zaman aşımıyla çalışacak (örneğin 1 saniye). // Eğer "uzun" fonksiyon bu süre içinde tamamlandıysa, mükemmel, sonucu döndürürüz. // Aksi takdirde, hata döndürürüz. Bu durumda çalışma sonucunun önemi yok. // // Ayrıca, bu fonksiyonun ne kadar süre çalıştığını ölçmemiz gerekiyor (sadece log'a yazdırmak yeterli). // Sarma fonksiyonunun imzasını değiştirebiliriz. func predictableFunc() int64 { return unpredictableFunc() }

241

İşten ne arıyorsun, ne yapmak istiyorsun?

233

SSL/TLS nasıl çalışır? Bağlantı kurma sürecini açıklayın.

201

Bankada hangi takımda çalıştın? Takım ne yapıyordu?

192

resp.Body.Close() hakkında konuş — neden gerekli ve neden 10'luk bir tampon koydun?

185

context.WithTimeout iç yapısı nasıl çalışır?

174

Go'da haritalar nasıl yapılandırılmıştır?

174

Kodu ne gösterecek? 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 }

170

Linux'ta CPU ve bellek kullanımını nasıl kontrol edilir?

166

Kubernetes için operatörler yazdın mı?

165

Veritabanlarında indeksler nedir? Hangi indeks türleri vardır?

164

Goroutine'ler işletim sistemi thread'lerinden nasıl farklıdır? Goroutine'ler ne işe yarar?

163

İşlem izolasyon seviyeleri nelerdir? Hangi seviyeleri kullandınız?

161

**Koşul** Birden fazla URL'ye yapılan istekler paralel olarak gerçekleştirilmelidir. HTTP durum kodlarını göstermek ve hataları işlemek.

156

PostgreSQL'de yavaş sorguyu nasıl buluruz ve nasıl optimize ederiz?

154

**Koşul** Birden fazla URL'ye yapılan istekler paralel olarak yapılmalı. HTTP durum kodlarını göster, hataları işle. ```go package main func main() { urls := []string{"[link]"} // Bir şeyler yap } ```

153

Junior, Middle ve Senior geliştiricileri nasıl ayırt ediyorsun? Kendini Senior olarak hangi kriterlere göre değerlendiriyorsun?

150

Tüm siparişlerin **müşteri adını**, **şehrini** ve **toplam tutarını** gösterecek bir SQL sorgusu yazın. Toplam harcamaları **1000** birimi aşan müşteriler yalnızca sonuçlara dahil edilmelidir. --- **Veri şeması:** 1. **`customers` tablosu:** - `customer_id` (int) – müşterinin benzersiz kimliği. - `customer_name` (varchar) – müşterinin adı. - `city` (varchar) – ikamet ettiği şehir. 2. **`orders` tablosu:** - `order_id` (int) – benzersiz sipariş numarası. - `customer_id` (int) – satın alma işlemini yapan müşterinin kimliği. - `total_amount` (decimal) – belirli bir siparişin tutarı.

146
/3