Golang
Ist die Standardbibliothek net/http ausreichend, um einen Produktions-Webserver in reinem Go ohne Frameworks zu schreiben?
Erzähl mir, wie du dich entwickelst und lernst, was du gerade lernst?
Haben Sie die Kubernetes YAML-Manifeste für CI/CD selbst geschrieben oder bearbeitet?
```go type User struct { ID int Name string } var ( dbHits int ) func getUserInfoFromDB(id int) User { time.Sleep(100 * time.Millisecond) dbHits++ return User{ID: id, Name: fmt.Sprintf("User-%d", id), } } func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func(i int) { defer wg.Done() fmt.Println(getUserInfoFromDB(i)) }(42) } wg.Wait() fmt.Println("DB hits:", dbHits) } ``` Korrigieren Sie den Fehler im Code, der mit dem gleichzeitigen Zugriff auf die Variable dbHits zusammenhängt.
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?
Wie sind Blockchain und CAP-Theorem verbunden? Ist die Blockchain immer verfügbar?
Was ist deine Hauptentwicklungssprache und wie viele Jahre Erfahrung hast du?
Kannst du dich an alle möglichen Arten der Interprozesskommunikation (IPC) erinnern?
Haben Sie mit zusammengesetzten Indizes gearbeitet?
Es gibt eine Bibliothek in Go — LRU, bei der man Any übergeben und TTL setzen kann. Warum wurde Redis gewählt und nicht diese?
Erzählen Sie uns von Goroutinen und wie sie sich von Betriebssystem-Threads unterscheiden.
Gibt es Fragen zu den Phasen des Interviews?
Wie kann man auf Transaktionsebene in der Datenbank nur eine Gruppe senden, wenn mehrere gleichzeitig auf ein Signal in einem Schnellreaktionssystem reagieren?
In der x86-Architektur belegt die Unterbrechungsanweisung zwei Bytes, aber die Unterbrechung mit Nummer 3 hat eine alternative ein-Byte-Variante. Warum war das notwendig?
Können wir ein Array erstellen, dessen Elemente verschiedene Typen haben, zum Beispiel 1, "A" und false?
Wir haben 3 Partitionen und 3 Verbraucher, die Verzögerung wächst. Wie kann KEDA in dieser Situation helfen?
Hast du momentan Angebote oder bist du noch im Vorstellungsgespräch?
Mit welchen Datenbanken hast du gearbeitet?
Du hast gesagt, dass du einen Service hast, der Kafka hört und den Cache in Redis aktualisiert, richtig?