Golang
Jak można zatrzymać wykonanie goroutine?
Jak działa profilowanie?
Co teraz motywuje cię do szukania nowej pracy?
Pytanie 1: Co wyświetli kod z użyciem slices? (append, pojemność, współdzielona tablica podstawowa)
Opowiedz o strategiach shardingowania baz danych: kiedy zacząć sharding i według jakich kryteriów wybierać klucz shardingowy?
Dlaczego wybrali Kafka zamiast RabbitMQ lub bazy danych? Jaki był sens?
Czy masz doświadczenie w pracy z Dockerem? Czy masz doświadczenie w samodzielnym pisaniu Dockerfile?
Czym jest SOLID? Wymień zasady.
Opowiedz o zespole i procesach zarządzania (sprinty, kanban itp.)
Ile masz ogólnego doświadczenia w IT w zakresie komercyjnym?
Czym jest interfejs nil? Co jest pod maską?
Ile czasu potrzeba na odpracowanie?
Jak wdrażacie: Kubernetes, bare metal czy chmura?
// Zadanie 3 // Opisz, jakie zadanie rozwiązuje ten kod // Jakie są problemy w tym rozwiązaniu? // Jak byś przepisał ten kod? var c int var mu sync.RWMutex type Trace struct { // Niektóre pola tutaj } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
Co się dzieje, jeśli przekażesz slice jako argument funkcji i zmienisz go wewnątrz?
Jeśli dodajemy wielu konsumentów, ale opóźnienie Kafka nadal się nie zmniejsza – co to świadczy?
Jakie narzędzia używasz do oceny wydajności i profilowania podczas tworzenia aplikacji w Go?
Jak obsłużyć sytuację, gdy wszystkie 5 gorutyn jednocześnie widzą pusty cache i idą do bazy danych (cache stampede)?
Dlaczego liczba shardów jest wygodna jako potęga dwójki, a nie na przykład trójka?
Jakie dokładnie zalety technologiczne i ekosystemy Go, ewentualnie unikalne, które tylko Go spełnia, mógłbyś wymienić?