Golang
Peux-tu parler des canaux en Go ? À quoi servent-ils et comment sont-ils utilisés ?
Combien de backends y avait-il dans l'équipe [entreprise] ?
Qu'est-ce qu'un deadlock et une condition de course, comment y faire face?
À quoi sert un canal avec une structure vide chan struct{}?
Écrivez une requête SQL qui affiche **le nom du client**, sa **ville** et **le montant total** de toutes ses commandes. Seules les clients dont la dépense totale dépasse **1000** unités doivent apparaître dans le résultat. --- **Schéma des données :** 1. **Table `customers` :** - `customer_id` (int) – identifiant unique du client. - `customer_name` (varchar) – nom du client. - `city` (varchar) – ville de résidence. 2. **Table `orders` :** - `order_id` (int) – numéro unique de commande. - `customer_id` (int) – ID du client ayant effectué l'achat. - `total_amount` (decimal) – montant d'une commande spécifique.
Quelle est la différence entre services et microservices?
Que se passe-t-il avec les autres goroutines pendant que certaines s'exécutent?
Que se passe-t-il si le service échoue au moment de la construction du batch ? Kubernetes a tué le pod — que se passe-t-il ?
Que fait sysmon en runtime dans Go?
Comment assurer l'ordre de traitement des messages dans Kafka?
Que faut-il améliorer dans l'implémentation de la carte ordonnée si l'on disposait de plus de temps ? Quels sont les problèmes possibles et les axes de développement de la bibliothèque ?
Comment assurer la garantie de livraison du message dans Kafka par le producteur, même si le leader échoue?
Pourquoi le début de la condition pour vérifier les caractères n'est-il pas écrit dans l'implémentation?
type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contient l'adresse ip:port d'une instance spécifique func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { si len(b.backends) == 0 { return nil, fmt.Errorf("Le nombre de backends dans le slice est 0") } b.mu.Lock() index := b.index si b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) return resp, err } // addrs contient les adresses de toutes les instances équilibrées func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs))
Comment partager la mémoire entre goroutines ? Dans quels cas est-il préférable d'utiliser Atomic, et dans quels Mutex/RWMutex/SyncMap ?
Peux-tu donner les 3 choses principales auxquelles il faut faire attention lors d'une revue de code?
Comment fonctionne une map en Go?
Comment vérifier la charge du CPU et de la mémoire sous Linux?
**Condition** Les requêtes vers plusieurs URL doivent être effectuées en parallèle. Il faut afficher les statuts HTTP et gérer les erreurs.
Concernant la spécificité de la startup : il n'y a pas toujours une définition claire des tâches, elles peuvent être floues, il faut de l'initiative et de l'autonomie, la charge de travail peut être inégale. Comment vous sentez-vous face à cela ?