Sobes.tech

Golang

In quale grafico hai visto il problema durante l'uso di pprof?

Senior
МТС CloudМТС Cloud
100

Di cosa ti occupavi esattamente nel tuo attuale lavoro? Qual è la tua area di responsabilità?

Senior
Суточно.руСуточно.ру
100

Cosa sono i timeout e li usi nel tuo lavoro?

Senior
AvitoAvito
100

Raccontami, qual è il tuo progetto attuale, di quale parte della funzionalità sei responsabile?

Middle+
Займиго
100

Quando è meglio usare Mutex e quando Channel?

Middle+
WaterWal
100

Come si chiama in Go l'approccio in cui crei un canale, lo chiudi e poi ne leggi? Qual è il vantaggio di chiudere un canale rispetto a inviare un valore?

Senior
Cloud.ru
100

Cos'è una goroutine e come funziona?

Senior
sber tech
100

Qual era la composizione del team? Era monofunzionale o cross-funzionale?

Senior
Яндекс
100

Su quanti host/istanze funzionava il servizio più carico?

Senior
eLama
100

Quali sono le caratteristiche del comportamento di una goroutine quando chiama funzioni di sistema sincrone?

Junior — Middle
100

Come sono strutturati i test nel team — chi cosa scrive, quale copertura, ci sono E2E?

Senior
Яндекс
100

Codifica dal vivo: aggiungi un timeout alla funzione — se l'esecuzione supera 1 secondo, restituisci un errore. Uso di select, time.After, context.

Middle+
Веро Трейс
100

Come implementare una Dead Letter Queue (DLQ) in Kafka?

Middle
Small
100

Cosa sarebbe interessante per te in un nuovo lavoro?

Middle+
2gis2gis
100

Cos'è TLS e a cosa serve un certificato?

Junior
Позитив Технолоджис
100

Lavori ancora in [azienda]? Quando prevedi di andartene e perché?

Middle+
Скоринг Бюро
100

Quali stati ha una goroutine?

Senior
sber tech
100

Qual è la differenza tra un bilanciatore di carico L4 e uno L7?

Senior
Яндекс
100

Perché si sono usati contemporaneamente Kafka e gRPC? Quali scenari sono passati attraverso Kafka e quali attraverso gRPC?

Senior
А7
100

/* Esiste un'applicazione con architettura a microservizi. Un microservizio può essere astratto tramite un'interfaccia Backend. Per accedere a un'istanza del microservizio, si può usare il tipo BackendImpl, che è già implementato. Ogni microservizio ha diverse decine di istanze in esecuzione, ciascuna accessibile tramite il proprio indirizzo addr. Tuttavia, le singole istanze del microservizio non sono affidabili: potrebbero fallire, essere inaccessibili o sovraccariche. Per questo, devi implementare il tipo Balancer, che implementa anche l'interfaccia Backend e effettua il bilanciamento del carico lato client tra le istanze del microservizio, scegliendo ogni volta l'istanza **meno caricata**. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contiene ip:porta di una specifica istanza func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO } var _ Backend = &Balancer{} // addrs contengono gli indirizzi di tutte le istanze bilanciate func NewBalancer(addrs []string) *Balancer { // TODO }

Middle
Яндекс
100
/412