Sobes.tech

Golang

// Our method for obtaining product information, this method is called very often // are there problems in this code and how to fix them? postgress database func (r *ProductRepository) GetProductDetails(ctx context.Context, productIDs []int) []Product { products := make([]Product, 0, len(productIDs)) for _, id := range productIDs { go func(id int) { var p Product query := "SELECT name, price, description FROM products WHERE id = $1" err := r.db.QueryRowContext(ctx, query, id).Scan(&p.Name, &p.Price, &p.Desc) if err != nil { r.logger.Error("error get product", "err", err) return } products = append(products, p) }(id) } return products }

Middle+
Lenta Tech
77

Millal arvutatakse edasi lükatud funktsioonide argumendid — määramise ajal või väljakutse ajal?

Senior
КасперскийКасперский
77

Kas on eeliseid, kui liideseid eraldatakse eraldi paketti?

Senior
2gis2gis
77

Räägi mulle gorutinidest. Oletame, et meil on rakendus, kus töötab goroutine, ja midagi läks valesti — kuidas sundida goroutine lõpetama?

Middle+
Napoleon IT
77

Miks sa valisid Go enda jaoks?

Senior
Spectr
77

Kas on Go-s slicesid niiskused mitme lõime jaoks? Kas on võimalik kirjutada erinevatesse slice indeksitesse paralleelselt ilma mutexita?

Senior
2gis2gis
77

Kas teil on varem olnud kokkupuude ettevõtte toodetega? Kas keegi tuttavatest töötab seal?

Senior
Flant
77

Kuidas töötab kaardimootor uutes Go versioonides, mis on muutunud?

Middle
Бюро 1440Бюро 1440
77

Kas saab kirjutada suletud kanalisse Go-s?

Senior
purrweb
77

Miks otsustasid tähelepanu pöörata turule? Mida praegu endale otsid? Millele pöörad tähelepanu, valides uut ettevõtet?

Senior
Магнит Тех
77

Kas on mehhanisme, mis aitavad vältida kokkupõrkeid programmeerimisel?

Middle+
OZONOZON
77

Millist tüüpi multitasking kasutab Go planeerija? Millised on kaks multitasking tüüpi?

Senior
AstonAston
77

Kirjeldage olukorda, kus teil tuli kasutada EXPLAIN ANALYZE.

Middle+
А7
77

Elukirjelduses on kirjas Kafka sõnumite töötlemisest käsitsi offsetide juhtimisega. Mida käsitsi tähendab?

Senior
МВидео/эльдорадо
77

Mis on rida Go-s?

Senior
Small
77

Otseülekande kodeerimine: semafor — kuidas see töötab ja selle rakendamine pufferkanali põhjal.

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

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Backends in slice count 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs contain all the addresses of the balanced instances func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

Middle
Яндекс
77

Millist metodoloogiat kasutate: Scrum, Kanban või segu?

Senior
РамблерРамблер
77

ScyllaDB kasutamine enne tootjat on antipattern. Kuidas korraldada duplikaatide eemaldamine õigesti?

Senior
Dataworks
77

Mis on liides Go-s? Kuidas töötab duck typing? Kas saab kontrollida liidese rakendamist kompileerimise ajal?

Middle
YadroYadro
77
/412