Kuo skiriasi B-medžio indeksas nuo hash-indekso PostgreSQL? Kokius kitus indeksus žinai?
Golang
Kaip techniškai įgyvendinti OpenAPI specifikaciją? Kas yra Swagger?
Pasakok apie Docker: pagrindiniai principai, daugiapakopės statybos, CLI komandos
Kokius linters naudojate Go kalboje ir kur juos vykdote?
// užduotis 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: Knygų API // version: .. // paths: // /books: // get: // responses: // "200"
Ką žinai apie runtime paketą? Kokius metodus naudojai?
Kokias kitas sinchronizacijos primitivas, išskyrus mutex ir WaitGroup, žinote? Naudojimo atvejai?
Papaskink apie Transactional Outbox modelį — kas tai ir kam naudojamas?
// mkdir projektas // cd projektas // go mod init projektas // touch main.go // vim main.go // --kodo kūrimas-- package main import "syscall" // func main() { // msg := []byte("Labas, pasauli!\n") // syscall.Write(1, msg) // } // --kodas baigtas-- // go build -o app // ./app // go test ./... // git nint
Ką žinote apie Transactional Outbox ir Saga? Papasakokite praktinį pavyzdį
Kokie yra pagrindiniai DDD artefaktai? Iš kokių dalių jis susideda?
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
Ką žinai apie gorutinų planuotoją Go?
Papaskink apie dabartinio projekto architektūrą
Papaskink apie stebėjimo sistemą: metrikų rinkėjai, įspėjimai
Kuo skiriasi Clean Architecture nuo DDD?
Kodėl naudojote raktinę žodį defer?
Kuo skiriasi /books ir /books/{id}?
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 klaida %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 }
Papaskink man savo profilavimo srautą Go kalba