Sobes.tech

Golang

Quelle a été la plus grande quantité de données avec laquelle vous avez travaillé et combien de requêtes de lecture/écriture y a-t-il eu?

158

/* Il y a une application avec une architecture de microservices. Un microservice peut être abstrait par une interface Backend. Pour accéder à une instance de microservice, on peut utiliser le type BackendImpl, qui est déjà implémenté. Chaque microservice a plusieurs dizaines d'instances en cours d'exécution, chacune accessible via sa propre adresse addr. Cependant, les instances individuelles du microservice ne sont pas fiables : elles peuvent échouer, être inaccessibles ou surchargées. C'est pourquoi vous devez implémenter un type Balancer, qui implémente également l'interface Backend et effectue un équilibrage de charge côté client entre les instances du microservice, en choisissant à chaque fois **l'instance la moins chargée**.

157

Pouvez-vous résumer brièvement votre expérience ? Quel est le principal langage de programmation que vous utilisez ? Combien d'années d'expérience avez-vous dans le développement industriel ?

157

Pourquoi avez-vous décidé d'utiliser LLM plutôt que simplement la logique dans le code?

157

Quelle est la différence avantageuse entre JWT et le stockage de sessions sur le serveur?

156

Quel est le principal langage de programmation que tu utilises ? Utilises-tu C++ ou Python ?

153

func Pipe(p Producteur, c Consommateur) 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

Quelle est la mémoire initialement allouée pour le tampon?

153

Décrivez l'algorithme pour résoudre le problème maxSegment

152

Pourquoi l'appel à backend.Invoke a-t-il été effectué en dehors du mutex?

152

Le répartiteur doit comprendre que le backend répond par des erreurs, et en dépassant un seuil pendant un certain temps, l'exclure du équilibrage (Circuit Breaker)

150

Que se passera-t-il si Consumer.Process renvoie une erreur — les données du buffer ne seront pas perdues?

150

Étant donné une chaîne S, il faut compter le nombre de sous-chaînes dans cette chaîne qui contiennent tous les caractères de cette chaîne au moins une fois. Exemples : "abca" -> 3 // abc, bca, abca "aa" -> 3 // aa, a, a, "ffg" -> 2 // ffg, fg

149

Quels langages de programmation, à part Go, utilisez-vous pour vous-même ou dans le développement commercial?

147

Quelle est la quantité maximale de requêtes par seconde que vous avez actuellement en haute charge?

147

Il s'agit d'une chaîne de caractères. Trouvez le nombre de paires d'indices i et j (i <= j), entre lesquelles, inclus, il n'y a pas de caractères répétés. Pour la chaîne "aba", la réponse est 5 : [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") Pour la chaîne "acbb", la réponse est ?:

145

// 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 contient ip:port d'une instance spécifique func NewBackend(addr string) *BackendImpl // addrs contiennent les adresses de toutes les instances équilibrées func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }

144

Quels critères utiliserez-vous pour choisir un employeur ? Qu'est-ce qui est le plus important pour vous ?

143

Comment sont traités les messages envoyés aux utilisateurs hors ligne?

143

Dans quel langage de programmation travaillez-vous ? Pourquoi y a-t-il eu des difficultés avec la syntaxe ?

143
/11