PostgreSQL'da B- daraxt indeks va hash indeks o'rtasidagi farq nima? Yana qanday indekslarni bilasiz?
Golang
OpenAPI spetsifikatsiyasini texnik jihatdan qanday amalga oshirish mumkin? Swagger nima?
Go'da qaysi lintlarni ishlatasiz va ularni qayerda ishga tushirasiz?
// vazifa 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: Kitob API // version: .. // paths: // /books: // get: // responses: // "200"
Docker haqida gapir: asosiy ishlash prinsiplari, ko'p bosqichli qurilishlar, CLI buyruqlari
Mutex va WaitGroupdan tashqari qanday boshqa sinxronizatsiya primitiplarini bilasiz? Foydalanish holatlari?
Transactional Outbox naqshini haqida gapirib bering — bu nima va nima uchun ishlatiladi?
// mkdir loyiha // cd loyiha // go mod init loyiha // touch main.go // vim main.go // --kodni yaratish-- package main import "syscall" // func main() { // msg := []byte("Salom, Dunyo!\n") // syscall.Write(1, msg) // } // --kod tugallandi-- // go build -o app // ./app // go test ./... // git nint // git add . // git commit -m "init"
DDD ning asosiy artefaktlari nima? Qaysi qismlardan iborat?
Runtime paket haqida nima bilasiz? Qaysi metodlarni ishlatgansiz?
Transactional Outbox va Saga haqida nima bilasiz? Amaliy holatni aytib bering
Go'dagi goroutine rejalashtiruvchisi haqida nima bilasiz?
Hozirgi loyiha arxitekturasi haqida gapirib bering
Monitoring tizimi haqida gapir: metrik yig'uvchilar, ogohlantirishlar
funksiya main() { ctx := context.Background() urls := []string{ "vk.ru", "ozon.ru", "pi.zone.ru", "lamoda.ru", "adidas.com", } pingMap, err := collectRTT(ctx, urls) if err != nil { fmt.Println("ERR:", err) return } data, _ := json.Marshal(pingMap) fmt.Println("RTT:", string(data)) } func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { // ... (rest of the function implementation) }(url) } // ... (rest of the function implementation) } Xato: # command-line-arguments 2486763/main.go:34:9: undefined: sync 2486763/main.go:35:9: undefined: sync 2486763/main.go:45:32: undefined: fmt.Errorf
Nega defer kalit so'zidan foydalaning?
Go'da profiling jarayoningiz haqida gapirib bering
func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { defer wg.Done() dur, err := rtt(ctx, u) if err != nil { select { case errCh <- fmt.Errorf("RTT uchun xato %s, %w", u, err): default: } return } mu.Lock() pingMap[u] = dur mu.Unlock() }(url) } wg.Wait() close(errCh) if err := <-errCh; err != nil { return nil, err } return pingMap, nil }
/books va /books/{id} o'rtasidagi farq nima?
Gorutinni qanday yakunlash mumkin? Qanday usullar mavjud?