Sobes.tech

Golang

Was ist der Unterschied zwischen einem B-Tree-Index und einem Hash-Index in PostgreSQL? Welche anderen Indizes kennst du?

271

Erzähle über Docker: Grundprinzipien, Multistage-Builds, CLI-Befehle

214

Erzählen Sie mir vom Pattern Transactional Outbox — was ist das und wofür wird es verwendet?

208

// Aufgabe 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: Buch API // version: .. // paths: // /books: // get: // responses: // "200"

202

Welche anderen Synchronisationsprimitive, außer Mutex und WaitGroup, kennst du? Anwendungsfälle?

199

// mkdir projekt // cd projekt // go mod init projekt // touch main.go // vim main.go // --Code erstellen-- package main import "syscall" // func main() { // msg := []byte("Hallo, Welt!\n") // syscall.Write(1, msg) // } // --Code beendet-- // go build -o app // ./app // go test ./... // git nint // git add . // git commit -m "init"

196

Was weißt du über das Runtime-Paket? Welche Methoden hast du verwendet?

190

Wie implementiert man die OpenAPI-Spezifikation technisch? Was ist Swagger?

189

Welche Linters verwendest du in Go und wo führst du sie aus?

184

Was sind die wichtigsten Artefakte von DDD? Aus welchen Teilen besteht es?

184

Erzählen Sie mir von der Architektur des aktuellen Projekts

183

Funktion 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) } Fehler: # 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

183

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("Fehler beim RTT für %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 }

177

Wie kann man eine Goroutine beenden? Welche Möglichkeiten gibt es?

172

Was weißt du über Transactional Outbox und Saga? Erzähle einen praktischen Fall

170

Wie viele Goroutines können auf einer Maschine erstellt werden? Wie zählt man?

168
/2