Sobes.tech

Golang

Povej mi več o projektu v Avitu — je bil to edini projekt v treh letih?

Senior
228

func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }

Senior
222

Aký typ má msg v gorutine a prečo je potrebné ho odovzdať ako argument?

Senior
217

Máte dohodu s inými zamestnávateľmi alebo ešte prechádzate fázami pohovorov?

Senior
195

Prečo sa resultErr nevracia priamo z gorutiny?

Senior
194

/* Vývojár dostal úlohu napísať službu na odosielanie oznámení. Požiadavky: - Metóda Send by mala odosielať správy paralelne. - Nemôže byť vykonaných viac ako maxworkers HTTP požiadaviek súčasne. - Ak aspoň jedno odoslanie zlyhá, ostatné treba zastaviť a vrátiť chybu. - Metóda by mala správne spracovávať zrušenie kontextu. - Všetky zdroje by mali byť správne uvoľnené. - Metóda môže byť volaná konkurenčne z rôznych gorútín. - Client by mal sledovať počet úspešne odoslaných správ. Je potrebné vykonať revíziu kódu, nájsť problémy a opraviť kód.

Senior
194

Kde je potrebné urobiť defer resp.Body.Close()?

Senior
191

Aké máte celkové obchodné skúsenosti s vývojom v Go?

Senior
183

Bude pohodlné pracovať s technickou dokumentáciou v angličtine?

Senior
179

Povedaj mi o VšetkýchNástrojoch — prečo si prišiel a prečo si odišiel?

Senior
177

Aké máš skúsenosti so SQL? Vieš písať a optimalizovať dotazy?

Senior
171

Kde končia kontexty v tomto kóde?

Senior
170

Čo sú to rýchle hry?

Senior
162

sentCount sa prenáša bez synchronizácie — ako to opraviť?

Senior
157

Čo sa stane, ak v dotaze do databázy neodovzdáte kontext?

Senior
156

Čo hľadáš v novom projekte? Aké technológie ťa zaujímajú? Čo by si nechcel vidieť na novom pracovisku?

Senior
156

Kedy index nepomáha alebo dokonca škodí?

Senior
136

Aké fázy (stages) sú zvyčajne v CI/CD pipeline pre Go službu?

Senior
131