Sobes.tech

Golang

C'è programmazione orientata agli oggetti in Go? Se sì, come viene implementata; se no, perché?

Senior
ClearWay
2

Cosa è più importante per te nel lavoro?

Senior
ООО Вес Медиа
2

Cosa restituisce la lettura da un canale chiuso?

Senior
ООО Вес Медиа
2

Come hai organizzato la scalabilità e con quali architetture di microservizi hai lavorato?

Senior
ClearWay
2

Quando si verifica una perdita di goroutine?

Senior
ООО Вес Медиа
2

Come implementare il metodo Status per ottenere lo stato del compito tramite ID?

Middle+
Яндекс
2

Come hai comunicato i requisiti per il deployment di un servizio in Kubernetes al team DevOps: in quale formato hai documentato il funzionamento del servizio e come è stata costruita l'interazione?

Senior
ClearWay
2

Cosa succede al programma se si verifica un panic in una goroutine separata?

Senior
ClearWay
2

Come viene gestito questo nel codice?

Senior
ClearWay
2

Ci sono comandi o direzioni tra i team o le aree descritte che ti risuonano particolarmente, o che preferiresti non fare?

Middle
2gis2gis
2

Come appariva una query di report lenta e qual era l'intero percorso dalla richiesta dell'utente all'ottenimento del risultato?

Senior
ClearWay
2

type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contiene ip:port di una istanza specifica func NewBackend(addr string) *BackendImpl type backentry struct { backend Backend inflight int64 } type Balancer struct { backends []*backentry mu *sync.Mutex } var _ Backend = &Balancer{} // addrs contengono gli indirizzi di tutte le istanze bilanciate func NewBalancer(addrs []string) *Balancer { data := make([]*backentry,len(addrs)) for i,addr := range addrs{ data[i] = &backentry{ backend: NewBackend(addr), inflight: 0, } } return &Balancer{backends:data} } func(b *Balancer)Invoke(ctx context.Context, req Request) (Response, error){ b.mu.Lock() entry := b.best() atomic.AddInt64(&entry.inflight,1) b.mu.Unlock() defer atomic.AddInt64(&entry.inflight,-1) return entry.backend.Invoke(ctx,req) } func(b *Balancer) best() *backentry{ var best *backentry for _,entry := b.backends{ if best == nil || atomic.LoadInt64(&entry.inflight) < atomic.LoadInt64(&best.inflight){ best = entry } } return best }

Middle
Яндекс
1

Come si differenzia sync.Mutex da sync.RWMutex?

Senior
ООО Вес Медиа
1

Descrivi il tuo processo di sviluppo e distribuzione di un nuovo servizio: dalla raccolta dei requisiti alla distribuzione negli ambienti di sviluppo e test.

Senior
ClearWay
1

Come è stato effettuato il deployment dei servizi?

Senior
ООО Вес Медиа
1

Implementa il metodo Queue

Middle+
Яндекс
1

Come è stato strutturato esattamente il processo di caricamento o costruzione di questi dati?

Senior
ClearWay
1

Cosa fa defer?

Senior
ООО Вес Медиа
1

A cosa serve un buffer di un canale?

Senior
ООО Вес Медиа
1

Cos'è il problema N+1 nei database?

Senior
ООО Вес Медиа
1
/419