Sobes.tech

Golang

Mekkora volt az adatok mennyisége, amellyel dolgozott, és hány olvasási/írási kérés volt?

158

Röviden el tudnád mondani a tapasztalataidat? Melyik a fő programozási nyelved? Mennyit tapasztaltál ipari fejlesztésben?

157

/* Egy mikroservice architektúrával rendelkező alkalmazás létezik. Egy mikroservice abstrakcionálható a Backend interfész segítségével. A mikroservice példányhoz való hozzáféréshez használható a BackendImpl típus, amely már meg van valósítva. Minden mikroservice-nek több tucat futó példánya van, mindegyik saját címével, addr-vel elérhető. Azonban az egyes mikroservice példányok nem megbízhatóak: lehetnek leállások, nem elérhetőek vagy túlterheltek. Ezért meg kell valósítanod egy Balancer típust, amely szintén megvalósítja a Backend interfészt, és kliensoldali terheléselosztást végez a mikroservice példányok között, minden alkalommal **a legkevésbé terhelt** példányt kiválasztva.

157

Miért döntöttél az LLM használata mellett a kód egyszerű logikája helyett?

157

Miben különbözik előnyösen a JWT a szerveren tárolt munkamenetektől?

156

func Pipe(p Producer, c Consumer) error { // TODO buf := make([]any, 0, MaxItems) cookies := make([]int, 0) flush := func() error { if len(buf) == 0 { return nil } if err := c.Process(buf); err != nil { return err } for _, cookie := range cookies { if err := p.Commit(cookie); err != nil { return err } } buf = buf[:0] cookies = cookies[:0] return nil } for { items, cookie, err := p.Next() if err != nil { flush() return err }

153

Mennyi memóriát allokáltak eredetileg a pufferhez?

153

Melyik a fő programozási nyelved? Használod a C++-t vagy a Pythont?

153

Miért került a backend.Invoke hívás a mutexen kívülre?

152

A terheléselosztónak értenie kell, hogy a backend hibákkal válaszol, és egy bizonyos időtartam alatt meghaladva egy küszöbértéket, kizárni azt az egyensúlyozásból (Circuit Breaker)

150

Mi történik, ha a Consumer.Process hibát ad vissza — nem vesznek el az adatok a pufferből?

150

Adott egy S sztring, meg kell számolni az ebben a sztringben található összes karaktert legalább egyszer tartalmazó szubsztringek számát. Példák: "abca" -> 3 // abc, bca, abca "aa" -> 3 // aa, a, a, "ffg" -> 2 // ffg, fg

149

Milyen programozási nyelveket, a Go mellett, használ saját magának vagy kereskedelmi fejlesztéshez?

147

Mekkora a maximális kérés szám másodpercenként, amit jelenleg magas terhelés alatt kezel?

147

Ez egy karakterlánc. Keresse meg az i és j indexpárok számát (i <= j), amelyek között, beleértve, nincsenek ismétlődő karakterek. A "aba" karakterlánc esetén a válasz 5: [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") Az "acbb" karakterlánc esetén a válasz ?:

145

Milyen kritériumokat fogsz használni munkaadó kiválasztásához? Mi a legfontosabb számodra?

143

Milyen programozási nyelvet használsz? Miért voltak nehézségek a szintaxissal?

143

Kész arra, hogy szükség esetén vagy személyes kívánságra másik programozási nyelvre váltson?

142

// TODO backends []*BackendImpl index int mu sync.Mutex func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { b.mu.Lock() index := b.index if b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) b.mu.Lock() defer b.mu.Unlock() b.index += 1 return resp, err } // addr tartalmazza egy adott példány ip:port címét func NewBackend(addr string) *BackendImpl // addrs tartalmazza az összes kiegyensúlyozott példány címét func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }

142
/11