Golang
Hauptpaket importiere ( "fmt" ) func main() { c := make(chan string) go fmt.Println(<-c) c <- "Hallo Welt!" fmt.Println("Beenden!") } fataler Fehler: alle Goroutinen schlafen - Deadlock! goroutine 1 [Kanal empfangen]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a Programm beendet: Status 2.
Hast du Verpflichtungen zu arbeiten oder ist ein schneller Übergang möglich?
Wie werden die bedingten Operatoren (if) auf Assembler-Ebene im Hintergrund implementiert?
Strebt der B-Baum-Index in PostgreSQL tatsächlich, sich in der Breite auszubreiten?
Welches Arbeitsformat ziehen Sie in Betracht?
Was ist ein Mutex?
Kannst du allgemein über Go sprechen — was für eine Sprache ist das, was sind ihre Eigenschaften?
Was ist das coolste Projekt oder die Funktion, auf die Sie stolz sind?
Wie werden sie ausgewählt, wenn mehrere Kanäle gleichzeitig in der Auswahl bereit sind?
Erzählen Sie in groben Zügen, worum es bei Ihrer aktuellen Tätigkeit in Ihrem Unternehmen geht.
Wann sollte man RabbitMQ anstelle von Kafka bevorzugen und umgekehrt?
Wie wurde der Belastungstest durchgeführt und welche Metriken wurden beobachtet?
Kannst du ein Beispiel für eine Engstelle nennen, die du durch Profiling mit pprof gefunden hast?
Der Recruiter versteht die Prioritäten nicht, sagt einfach 'Ich brauche 300 Kandidaten' — wie damit umgehen?
Was ist ein Race Condition in Go? Geben Sie ein Beispiel.
Haben Sie Fragen an mich?
Warum haben Sie Redis anstelle eines In-Memory-Caches verwendet?
Was sind Schnittstellen in Go? Was ist Duck Typing?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // Transaktion hinzufügen if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil } func (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // $1 hinzufügen if err != nil { if err == sql.ErrNoRows { return p, errors.New("Partner nicht gefunden") } return p, err } return p, nil }
Erzähle interessante Fälle aus der Arbeit mit PostgreSQL