Golang
Opowiedz o strukturze zespołu — kto w nim jest?
Jak był zorganizowany zespół w Twojej ostatniej pracy, ile osób było i jakie dokładnie stanowisko zajmowałeś?
Opowiedz ogólnie, jak wszedłeś na rynek, jaka była przyczyna poszukiwania pracy?
Dlaczego wybraliście RabbitMQ zamiast Kafka do powiadomień?
Jaka była Twoja rola w podejmowaniu decyzji architektonicznych podczas rozwoju usługi wyszukiwania?
Co wyświetli program podczas wykonywania? package main import "fmt" func main() { s := make([]int, 0, 3) m := map[string]int{"a": 1, "b": 2} for i := 0; i < 5; i++ { s = append(s, i) } fmt.Println(len(s), cap(s)) if v, ok := m["c"]; ok { fmt.Println(v) } else { fmt.Println("brak klucza") } }
Dlaczego użyłeś Redis zamiast pamięci podręcznej w pamięci?
Jak dodanie UNIQUE(email) do tabeli z PRIMARY KEY(id) w PostgreSQL wpływa na wstawianie i miejsce na dysku? - Koszt wstawiania prawie się nie zmienia, miejsce na dysku się zmniejsza - Koszt wstawiania rośnie, miejsce na dysku rośnie - Wstawianie jest szybsze, miejsce na dysku się nie zmienia - Wstawianie jest szybsze, miejsce na dysku jest prawie nieużywane
Co zwracała usługa wyszukiwania?
Czy jesteś gotowy na zmianę na inny język programowania, jeśli zajdzie taka potrzeba lub z własnej woli?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // dodać transakcję if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // zabezpieczyć SELECT FOR UPDATE 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 }
Jak moglibyśmy obsługiwać zewnętrznie błędy, które występują w zadaniach, jeśli chcielibyśmy to zrobić?
Jak dodać obsługę gier z ograniczeniem czasu (3 lub 5 minut) oprócz gry bez ograniczeń?
Jak zaimplementowałeś atomowość zapisu w Redis? Jakiego algorytmu użyłeś (skrypt Lua)?
Ogólnie, co sądzisz o kierunku zespołu (platforma ClickHouse/Elasticsearch)?
Czy uważasz, że pokrycie testami w projektach? Jak to jest zorganizowane?
Kiedy następuje przełączanie goroutine bez preempcji (kooperatywne)?
Czy dwie slices można porównać bezpośrednio operatorem równości, aby sprawdzić równość elementów?
Jakimi głównymi kryteriami obecnie wybierasz pracodawcę?
Co się dzieje podczas aktualizacji typu rolling update w Kubernetes?