Mekkora volt az adatok mennyisége, amellyel dolgozott, és hány olvasási/írási kérés volt?
Golang
Röviden el tudnád mondani a tapasztalataidat? Melyik a fő programozási nyelved? Mennyit tapasztaltál ipari fejlesztésben?
/* 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.
Miért döntöttél az LLM használata mellett a kód egyszerű logikája helyett?
Miben különbözik előnyösen a JWT a szerveren tárolt munkamenetektől?
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 }
Mennyi memóriát allokáltak eredetileg a pufferhez?
Melyik a fő programozási nyelved? Használod a C++-t vagy a Pythont?
Miért került a backend.Invoke hívás a mutexen kívülre?
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)
Mi történik, ha a Consumer.Process hibát ad vissza — nem vesznek el az adatok a pufferből?
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
Milyen programozási nyelveket, a Go mellett, használ saját magának vagy kereskedelmi fejlesztéshez?
Mekkora a maximális kérés szám másodpercenként, amit jelenleg magas terhelés alatt kezel?
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 ?:
Milyen kritériumokat fogsz használni munkaadó kiválasztásához? Mi a legfontosabb számodra?
Milyen programozási nyelvet használsz? Miért voltak nehézségek a szintaxissal?
Kész arra, hogy szükség esetén vagy személyes kívánságra másik programozási nyelvre váltson?
// 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, } }
Hol laksz, hol vagy?