Golang
Wie wurde die Soft Hold-Reservierung mit der abschließenden Überprüfung bei der Buchungsbestätigung organisiert?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // Transaktion hinzufügen if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // SELECT FOR UPDATE schützen 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 }
Wohin möchtest du dich entwickeln – in den technischen Bereich oder mehr im Management?
Erzählen Sie mir mehr über das Punktesystem — was passierte auf der oberen Ebene?
Welcher Mechanismus existiert in Go: Vererbung oder Komposition?
Gibt es einen Unterschied in der Ausführungszeit, wenn man die gleiche Funktion auf einem sortierten und einem unsortierten Array vergleicht? Was ist Branch Prediction und die Pipeline des Prozessors?
Haben Sie Lasttests durchgeführt? Wie hoch war die Belastung?
Welche Komponenten werden bei der Skalierung von 1000 auf 10000-20000 RPS zum Engpass?
Wie wurde der RPS berechnet — hast du einfach die Last aller Hebel addiert oder wie?
Was haben Sie nach der manuellen Verarbeitung mit ungültigen Nachrichten gemacht? Wie sah das technisch aus?
Gab es viel Logik in den Diensten oder übermittelten die Dienste einfach nur Daten?
Was ist der Unterschied zwischen DELETE und TRUNCATE?
Arbeitest du jetzt?
Gab der Dienst einfach nur Daten aus dem Cache weiter, oder führte er noch eine andere Logik aus?
var ( mu sync.Mutex items []Product vatRate = 10.0 order Order ) type Product struct { NameOfProduct string PriceOfProduct float32 } type Order struct { Items []Product } func init() { items = make([]Product, 100) } func AddItemToShoppingCart(item Product) { items = append(items, item) } func RemoveItemFromShoppingCart(nameOfItem string) bool { mu.Lock() defer mu.Unlock() for i, item := range items { if item.NameOfProduct == nameOfItem { items = append(items[:i], items[i+1:]...) } } }
Wie haben sie miteinander interagiert — gab es gemeinsame Treffen, Planung, Daily-Meetings?
Welche Morphing-Methode möchten Sie verwenden, wenn Shape Keys nicht funktionieren?
Haben Sie Tests geschrieben? Welche?
Wie man entscheidet, ob ein Produkt mit etwa 1000 Nutzern eine Microservices- oder Monolith-Architektur benötigt?
Es gibt einen Parkplatz im Einkaufszentrum: Autos fahren rein und raus, und am Ende der Parksession muss bezahlt werden. Wie siehst du das? Entwerfe ein System.