Sobes.tech

Golang

Mesélj részletesebben az Avito projektről — ez volt az egyetlen projekt három év alatt?

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

Milyen típusú a msg a goroutine-ban, és miért kell argumentumként átadni?

Senior
217

Vannak megállapodások más munkáltatókkal, vagy még az interjúk szakaszában vagy?

Senior
195

Miért nem tér vissza közvetlenül a goroutine-ból a resultErr?

Senior
194

/* A fejlesztő feladata egy értesítési küldő szolgáltatás írása volt. Elvárások: - A Send metódusnak párhuzamosan kell küldenie az üzeneteket. - Nem lehet több maxworkers HTTP kérés egyszerre fut. - Ha legalább egy küldés hibával végződik, a többit meg kell állítani és hibát kell visszaadni. - A metódusnak helyesen kell kezelnie a kontextus megszakítását. - Minden erőforrást helyesen kell felszabadítani. - A metódus több goroutine-ból is hívható konkurensen. - A Client nyilvántartja a sikeresen küldött üzenetek számát. Kód áttekintést kell végezni, problémákat találni és javítani a kódot.

Senior
194

Hol kellene defer resp.Body.Close()-t csinálni?

Senior
191

Milyen általános kereskedelmi tapasztalatod van a Go-val való fejlesztésben?

Senior
183

Kényelmes lesz az angol nyelvű műszaki dokumentációval dolgozni?

Senior
179

Mesélj az ÖsszesSzerszámról — miért jöttél és miért mentél?

Senior
177

Milyen tapasztalatod van az SQL-lel? Tudsz kérdéseket írni és optimalizálni?

Senior
171

Hol végződnek a kontextusok ebben a kódban?

Senior
170

Mi a gyors játékok?

Senior
162

sentCount szinkronizáció nélkül kerül továbbításra — hogyan javítható ez?

Senior
157

Mi történik, ha nem adod át a kontextust az adatbázis lekérdezésnél?

Senior
156

Mit keresel egy új projektben? Milyen technológiák érdekelnek? Mit nem szeretnél látni az új munkahelyeden?

Senior
156

Mikor nem segít az index vagy akár árt is?

Senior
136

Milyen szakaszok (stages) vannak általában egy CI/CD pipeline-ban egy Go-szolgáltatáshoz?

Senior
131