Sobes.tech

Ποια είναι η διαφορά μεταξύ ενός δείκτη B-tree και ενός δείκτη hash στο PostgreSQL; Ποιους άλλους δείκτες γνωρίζετε;

279

Πώς υλοποιείται τεχνικά η προδιαγραφή OpenAPI; Τι είναι το Swagger;

241

Ποια linters χρησιμοποιείς στο Go και πού τα τρέχεις;

232

// εργασία 2 // 1. OpenAPI + gRPC // (YAML) // info: // title: API Βιβλίων // version: .. // paths: // /books: // get: // responses: // "200"

224

Μίλησε για το Docker: βασικές αρχές λειτουργίας, πολύ-στάδια κατασκευές, εντολές CLI

216

Ποιες άλλες primitive συγχρονισμού, εκτός από mutex και WaitGroup, γνωρίζεις; Περιπτώσεις χρήσης;

211

Μίλησέ μου για το μοτίβο Transactional Outbox — τι είναι και γιατί χρησιμοποιείται;

208

// mkdir έργο // cd έργο // go mod init έργο // touch main.go // vim main.go // --δημιουργία κώδικα-- package main import "syscall" // func main() { // msg := []byte("Γειά, Κόσμε!\n") // syscall.Write(1, msg) // } // --ο κώδικας ολοκληρώθηκε-- // go build -o app // ./app // go test ./... // git nint // git add . // git commit -m "init"

204

Τι γνωρίζεις για το Transactional Outbox και το Saga; Διηγήσου μια πρακτική περίπτωση.

196

Τι ξέρεις για το πακέτο runtime; Ποιες μεθόδους χρησιμοποίησες;

196

Ποια είναι τα βασικά artefacts του DDD; Από ποια μέρη αποτελείται;

196

Τι γνωρίζεις για τον προγραμματιστή goroutine στο Go;

194

Μίλησε για την αρχιτεκτονική του τρέχοντος έργου

191

Σφάλμα: # 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

189

Γιατί χρησιμοποίησες τη λέξη-κλειδί defer;

184

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 %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

Πώς μπορεί να τερματιστεί μια goroutine; Ποιοι είναι οι τρόποι;

176

Ποια είναι η διαφορά μεταξύ /books και /books/{id};

176

Πόσα goroutines μπορούν να δημιουργηθούν σε ένα μόνο μηχάνημα; Πώς μετράμε;

172
/2