Sobes.tech

Golang

Kāda ir atšķirība starp B-koka indeksu un hash-indeksu PostgreSQL? Kādus citus indeksus pazīsti?

279

Kā tehniski īstenot OpenAPI specifikāciju? Kas ir Swagger?

243

// uzdevums 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: Grāmatu API // version: .. // paths: // /books: // get: // responses: // "200"

224

Pastāsti par Docker: galvenie principi, daudzposmu būvniecība, CLI komandas

220

Ko tu zini par runtime paketi? Kādas metodes esi izmantojis?

218

Kuras citas sinhronizācijas primitivas, izņemot mutex un WaitGroup, tev ir zināmas? Lietošanas gadījumi?

213

Pastāsti par Transactional Outbox paraugu — kas tas ir un kam tas tiek izmantots?

208

// mkdir projekts // cd projekts // go mod init projekts // touch main.go // vim main.go // --koda izveide-- package main import "syscall" // func main() { // msg := []byte("Sveiki, pasaule!\n") // syscall.Write(1, msg) // } // --kods pabeigts-- // go build -o app // ./app // go test ./... // git nint

204

Ko jūs zināt par Transactional Outbox un Saga? Pastāstiet praktisku gadījumu

198

Kādi ir galvenie DDD artefakti? No kādām daļām tas sastāv?

198

funkcija 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) } Įspėjimas: # 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

195

Pastāsti par uzraudzības sistēmu: metriku vācēji, brīdinājumi

191

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 kļūda %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 }

179
/2