Sobes.tech

Golang

Cos'è una tabella hash?

Middle
VKVK
78

Come evitare di bloccarsi indefinitamente leggendo da un canale vuoto? Cos'è select e quali sono i suoi pattern?

Senior
YadroYadro
78

Esistono meccanismi che aiutano a evitare collisioni nella programmazione?

Middle+
OZONOZON
78

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Numero di backends nel slice 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs contengono gli indirizzi di tutte le istanze bilanciate func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

Middle
Яндекс
78

Perché abbiamo bisogno di WaitGroup in questo compito?

Senior
Cloud.ru
78

Cos'è un'interfaccia in Go? Come funziona il duck typing? È possibile verificare l'implementazione di un'interfaccia durante la compilazione?

Middle
YadroYadro
78

Scrivi un codice con un pool di worker per elaborare un slice di URL con richieste HTTP parallele.

Senior
WildberriesWildberries
78

Quali pattern di programmazione parallela conosci? Fornisci un esempio di semaforo dalla libreria standard/pratica di Go e spiega come un canale può essere usato come semaforo (acquisizione e rilascio).

Senior
МВидеоМВидео
78

Come hai gestito i resi e i pagamenti?

Senior
РамблерРамблер
78

Cosa sono i container init e i container sidecar?

Senior
SelectelSelectel
78

Perché in sync.Map non c'è un metodo per ottenere il numero di elementi (len)?

Senior
VK CloudVK Cloud
78

Dai curriculum, attualmente lavori in [organizzazione], è corretto?

Middle
РедСофт
78

Parla più dettagliatamente dei semafori.

Senior
AvitoAvito
78

Tipi di invalidazione della cache. Quali conosci e quali hai usato?

Middle+
МТСМТС
78

Cos'è un indice e quali tipi di indici esistono in PostgreSQL?

Senior
Cloud.ru
78

Quali database e broker di messaggi utilizzi nel tuo stack?

Senior
OZONOZON
78

Per quale motivo ha deciso di entrare nel mercato?

Senior
Napoleon IT
78

Quali chiavi possono avere le mappe in Go?

Middle+
WaterWal
78

Numero di utenti unici, numero di clic, costo per clic — parlami di queste metriche

Senior
МВидеоМВидео
78

Come si presenta la distribuzione del tuo lavoro — cosa consegni ai colleghi dopo aver scritto il codice?

Senior
СБЕРСБЕР
78
/412