Sobes.tech

Golang

Rozhodl jste se napsat WaitGroup, protože se objevil kanál, nebo jste se rozhodli napsat goroutines pro něco?

Senior
166

Co říká konvence Go o používání WaitGroup a vracených typech (přijímání rozhraní, vracení konkrétních typů)?

Senior
164

// Klient předává vstupní objekt (Task) s daty pro vykonání úkolu, // v našem příkladu použijeme prázdnou strukturu. // // Řadič může zpracovat maximálně N úkolů současně, // a ne více než X úkolů může být ve frontě na zpracování. // Pokud není místo ve frontě, ihned vrátíme klientovi chybu. // // Úkol je zpracováván, pokud jsou k dispozici volní zpracovatelé. // Simulujeme dobu zpracování pomocí time.Sleep(5*time.Second). // Jakmile je úkol dokončen, vezmeme další z fronty. // Pokud je fronta prázdná, čekáme na nové úkoly od klientů. // // S hvězdičkou: rozšířit strukturu Task a získat stavy úkolů přes samostatný dotaz. package scheduler type Scheduler interface { AddTask(t Task) error Close() } type scheduler struct { queue chan Task wg sync.WaitGroup } func New(workers, queue int) Scheduler { // implementace čeká } type Task interface { Do() }

Senior
164

Jakou technologii/nástroj používáš?

Senior
164

Jaké typy indexů v PostgreSQL jste používali kromě B-tree?

Senior
163

Jak bychom mohli externě zpracovávat chyby, které se v úlohách vyskytují, pokud bychom to chtěli udělat?

Senior
161

Jaká byla vaše role při přijímání architektonických rozhodnutí při vývoji vyhledávací služby?

Senior
161

Použil jsi CTE? Vyprávěj, co to je.

Senior
160

Použil jsi kontexty v praxi? Vyprávěj.

Senior
158

func New(workers, queue, int) Scheduler { s := &scheduler { queue := make(chan Task, queue) for i := 0; i < workers; i++ { wg.Add(1) go func() { defer wg.Done() for task := range s.queue { task.Do() } }() } } return s } func (s *scheduler) Close() { close(s.queue) s.wg.Wait() } type Task interface { Do() }

Senior
157

Lze vytvořit index pouze na repliku, nikoli na masteru?

Senior
156

Existují v implementaci ještě datové závody? Konkrétně v metodě Keys, která vrací řez klíčů?

Senior
156

Chcete napsat klasický worker pool?

Senior
154

Jaký je rozdíl mezi SELECT FOR UPDATE a SELECT FOR SHARE?

Senior
153

Typy replikace v PostgreSQL

Senior
152

Používal jste funkce oken?

Senior
150

Je práce povolena pouze na území Ruské federace?

Senior
150

Máte zkušenosti s psaním Kubernetes operátorů, správou operátorů, Helm Chart?

Senior
149

Proč jste místo toho, abyste ho ukládali do databáze, nepoužili Redis?

Senior
148

Jaké dokumenty byly uloženy v ELK?

Senior
146
/7