Puoi raccontare brevemente la tua esperienza? Qual è il principale linguaggio di programmazione che usi? Quanti anni di esperienza hai nello sviluppo industriale?
Golang
Perché avete deciso di usare LLM invece della semplice logica nel codice?
Alla riga 60 buf = buf[:0] — cosa sta succedendo qui?
/* C'è un'applicazione con architettura a microservizi. Un microservizio può essere astratto tramite un'interfaccia Backend. Per accedere a un'istanza di microservizio, si può usare il tipo BackendImpl, che è già implementato. Ogni microservizio ha diverse decine di istanze in esecuzione, ognuna accessibile tramite il proprio indirizzo addr. Tuttavia, le singole istanze del microservizio non sono affidabili: potrebbero fallire, essere inaccessibili o sovraccariche. Per questo, devi implementare un tipo Balancer, che implementa anch'esso l'interfaccia Backend e effettua il bilanciamento del carico tra le istanze del microservizio, scegliendo ogni volta **l'istanza meno caricata**.
In cosa si differenzia JWT dal memorizzare le sessioni sul server?
Qual è il linguaggio di programmazione principale che usi? Utilizzi C++ o Python?
func Pipe(p Produttore, c Consumatore) 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 }
Quanta memoria viene inizialmente assegnata al buffer?
Cosa succede se Consumer.Process restituisce un errore — i dati dal buffer non verranno persi?
Perché la chiamata a backend.Invoke è stata effettuata al di fuori del mutex?
Quali linguaggi di programmazione, oltre Go, usi per te stesso o nello sviluppo commerciale?
Dato un stringa S, è necessario contare il numero di sottostringhe in questa stringa che contengono tutti i caratteri di questa stringa almeno una volta. Esempi: "abca" -> 3 // abc, bca, abca "aa" -> 3 // aa, a, a, "ffg" -> 2 // ffg, fg
Qual è il massimo numero di richieste al secondo che hai attualmente sotto carico elevato?
Questa è una stringa di caratteri. Trova il numero di coppie di indici i e j (i <= j), tra cui, ci sono caratteri non ripetuti. Per la stringa "aba" la risposta è 5: [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") Per la stringa "acbb" la risposta è ?:
// 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 contiene ip:port di una specifica istanza func NewBackend(addr string) *BackendImpl // addrs contengono gli indirizzi di tutte le istanze bilanciate func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }
In quale linguaggio di programmazione lavori? Perché ci sono state difficoltà con la sintassi?
Dove vivi, dove ti trovi?
Quali criteri utilizzerai per scegliere un datore di lavoro? Cosa è più importante per te?
Se necessario o per desiderio personale, sei disposto a passare a un altro linguaggio di programmazione?
Parliamo di architettura a microservizi. Cosa è stato più recente: supporto o sviluppo?