Golang
Kannst du ein Beispiel für eine Engstelle nennen, die du durch Profiling mit pprof gefunden hast?
Warum kann man den Kanal, der von ctx.Done() zurückgegeben wird, nicht mit der Funktion close() schließen?
Was haben Dienste damit zu tun, wenn wir über Fehlertoleranz sprechen und es auf Replikate reduziert haben?
Warum haben Sie Redis anstelle eines In-Memory-Caches verwendet?
Warum sind Sie auf den Markt gegangen, was ist die Motivation für den Übergang?
Wie könnten wir externe Fehlerbehandlung für Fehler in Aufgaben implementieren, wenn wir das tun wollten?
// Es gibt ein Netzwerk von Bankterminals. Es ist notwendig, die Antwortanzeigen im Netzwerk zu sammeln. Die Terminals sind im ganzen Land verteilt. // Schreiben Sie eine Funktion, die eine URL aus einer Eingabeliste erhält ([]string{"[link] "[link] "[link] usw.}) // Die Antwort wird in stdout in einer separaten Zeile ausgegeben "url: %s, code: %s" func check(urls []string) {}
Was sind die Hauptteile des Systems Transactional Outbox?
Wenn du ein Slice an eine Funktion übergibst und ein neues Element hinzufügst – sind Änderungen außerhalb der Funktion sichtbar? Was, wenn die Kapazität nicht überschritten wird?
Hast du in [Stadt] gelebt, dann bist du nach [Stadt] gezogen?
Kannst du über Idempotenz sprechen? Wie hast du sie implementiert? Wie funktionierte sie überhaupt?
Gibt es einen Architekten, der speziell auf Elasticsearch bestanden hat?
var defaultTxOptions = &sql.TxOptions{} const defaultCurrency = "RUB" func CreateUserWithDefaultCurrency(ctx context.Context, db *sql.DB, email, passwordHash string) error { tx, err := db.BeginTx(ctx, defaultTxOptions) if err != nil { return err } defer func() { if err != nil{ tx.Rollback() } }() _, err = tx.Exec("INSERT INTO users (email, password) VALUES (?, ?)", email, passwordHash) if err != nil { return err } rows, err := tx.Query("SELECT id FROM users WHERE email = ?", email) if err != nil { return err } defer rows.Close() id := 0 for rows.Next() { err = rows.Scan(&id) if err != nil { return err } } _, err = tx.Exec("INSERT INTO balances (user_id, currency, current_balance) VALUES (?, ?, 0)", id, defaultCurrency) if err != nil { return err } return tx.Commit() }
Warum hast du dich entschieden, den Job zu wechseln?
Haben Sie in dem Unternehmen als externer Mitarbeiter oder als festangestellter Mitarbeiter gearbeitet?
Was ist falsch am Code zum Inkrementieren des Zählers in 1000 Goroutines? Wie kann man es mit Mutex, Atomic oder Kanälen beheben?
Erzählen Sie mir vom Go-Planer, wie er funktioniert und welchen Algorithmus er verwendet.
Was ist GOMAXPROCS? Was passiert, wenn man eine sehr große Zahl festlegt?
Was kann verwendet werden, um Daten zwischen Goroutinen zu übertragen?
Welches Team möchtest du am neuen Ort sehen? Gibt es Präferenzen bezüglich der Zusammensetzung, Rollen?