Sobes.tech

Golang

Peut-on allouer explicitement une variable sur la pile ou sur le tas ? Comment savoir où la variable a été allouée ?

375

Comment le pattern Outbox a-t-il été implémenté ? Quel outil envoyait depuis la table outbox vers Kafka ?

307

Quelle est la différence entre VACUUM et VACUUM FULL?

268

Pourquoi Kafka et pas d'autres systèmes?

247

Comment évaluer à l'avance l'efficacité et l'utilité d'un index avant de le déployer en production?

234

Quel protocole de transport gRPC utilise-t-il ? Quelle est la différence entre HTTP/2 et HTTP/1.1 ?

218

Que se passe-t-il dans PostgreSQL lorsqu'une requête DELETE FROM table sans conditions est exécutée?

218

Quelle information montre EXPLAIN ANALYZE ?

215

Quelle est la différence entre SSL et TLS?

215

Quelle est la différence entre les types de données int32, int64 et simplement int?

215

Que se passe-t-il si on ferme un canal déjà fermé ? Que se passe-t-il si on écrit dans un canal nil ?

211

Qu'est-ce qu'une map en Go ? Comment fonctionne-t-elle en interne ? Que se passe-t-il en cas de collision ?

209

Qu'est-ce que la limitation de débit ? Quels algorithmes existent ?

197

Raconte une tâche intéressante dont tu es fier, une expérience ou des difficultés.

192

Qu'est-ce que le verrouillage pessimiste?

190

// Lors de la mise à jour d'une commande, nous devons envoyer les données de la commande à plusieurs services (API tierces) // le nombre de services augmente (peut-être des milliers+) // nous avons écrit le code, au début tout allait bien, mais avec le temps notre service a commencé à consommer beaucoup de mémoire func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Imaginons que c'est un appel réseau long response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "échec de l'envoi", err) return } s.logger.Info(ctx, "succès", response) }() } }

Middle+
187

Quelles sont les méthodes de concaténation de chaînes en Go ? Quelle est la différence entre + et strings.Builder ?

185

// Nous avons une méthode pour obtenir des informations sur les produits, cette méthode est appelée très fréquemment // y a-t-il des problèmes dans ce code et comment les corriger ? base de données postgress func (r *ProductRepository) GetProductDetails(ctx context.Context, productIDs []int) []Product { products := make([]Product, 0, len(productIDs)) for _, id := range productIDs { go func(id int) { var p Product query := "SELECT name, price, description FROM products WHERE id = $1" err := r.db.QueryRowContext(ctx, query, id).Scan(&p.Name, &p.Price, &p.Desc) if err != nil { r.logger.Error("error get product", "err", err) return } products = append(products, p) }(id) } return products }

Middle+
184

Qu'est-ce que les canaux en Go ? Quels types existent ? Comment sont-ils structurés en interne ?

184

Qu'est-ce que le principe de Durabilité dans ACID ? Comment est-il réalisé dans PostgreSQL ?

183
/3