Milline on erinevus B-puu indeksi ja hash-indeksi vahel PostgreSQL-is? Milliseid teisi indekseid tead?
Golang
Kuidas tehniliselt rakendada OpenAPI spetsifikatsiooni? Mis on Swagger?
Milliseid lintersid kasutad Go-s ja kus neid käivitad?
// ülesanne 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: Raamatute API // version: .. // paths: // /books: // get: // responses: // "200"
Räägi Dockerist: põhialused, mitmeastmelised ehitused, CLI käsud
Milliseid teisi sünkronsiooniprimitive, välja arvatud mutex ja WaitGroup, tead? Kasutusjuhtumid?
Räägi mulle Transactional Outbox mustrist — mis see on ja milleks seda kasutatakse?
// mkdir projekt // cd projekt // go mod init projekt // touch main.go // vim main.go // --koodi loomine-- package main import "syscall" // func main() { // msg := []byte("Tere, maailm!\n") // syscall.Write(1, msg) // } // --kood on valmis-- // go build -o app // ./app // go test ./... // git nint
Mida tead runtime paketist? Milliseid meetodeid sa kasutasid?
Mida sa tead Transactional Outbox ja Saga kohta? Räägi praktilisest juhtumist
Millised on DDD peamised artefaktid? Millest see koosneb?
Mida sa tead Go goroutine'i planeerijast?
Räägi praeguse projekti arhitektuurist
funktsioon 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) } Uyarı: # 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
Miks kasutasid märksõna defer?
Räägi mulle oma profiili voog Go-s
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 error %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 }
Kuidas saab gorutina lõpetada? Millised on viisid?
Mis vahe on /books ja /books/{id} vahel?
Mis juhtub, kui sisestate [veebisaiti] brauserisse? Rääkige võimalikult üksikasjalikult, milliseid protokolle kasutatakse