Golang
Quelles commandes utilisez-vous habituellement dans le système d'exploitation Linux?
Quelles approches peuvent être utilisées pour assurer la sécurité des threads lors de l'utilisation de slices dans un environnement multithread?
Quelles opérations sont autorisées lors de l'utilisation d'une tranche nil dans le langage de programmation?
Quelles méthodologies de conception de systèmes privilégies-tu lors de la création de solutions?
Parlez d'une tâche difficile que vous avez pu résoudre en écrivant un script pour le système Linux
Comment peut-on réguler la quantité de données stockées dans le cache?
Prêt à jouer le rôle de seul spécialiste Backend dans l'équipe
Quelle est la principale raison d'utiliser le type sync.Map en Go?
Quelles sont les bonnes pratiques et les antipatterns en testing unitaire ? Comment savoir si les tests sont bons ?
func Exclude(a, b []int) []int { set := make(map[int]struct{}) for _, v := range b { set[v] = struct{}{} } result := make([]int, 0) for _, v := range a { if _, ok := set[v]; !ok { result = append(result, v) } } return result } Erreur de compilation # command-line-arguments ./main.go:39:32: erreur de syntaxe: saut de ligne inattendu, attendu { après la clause if
Avez-vous déjà rencontré des difficultés lors de la mise en œuvre d'interactions entre différents services?
Comment la transmission d'une tranche (slice) se fait-elle dans une fonction en langage de programmation?
Qu'est-ce que le motif Saga?
Pourquoi n'ont-ils pas pris Testcontainers ?
/* Nous devons transférer des données d'une source à un consommateur. La source fournit les données en petits lots (~dizaines d'enregistrements), tandis que le consommateur fonctionne plus efficacement avec de gros lots. Un exemple réel est le transfert de données depuis des files d'attente de type Kafka vers la base de données Clickhouse. Source: - Pratiquement infinie. - La source ne renvoie jamais plus de MaxItems en un seul appel à Next. - Dans une "session" (un appel à la fonction Pipe), la source renvoie de nouvelles données à chaque appel à Next. - Cependant, après un redémarrage, la source recommencera à partir de la position "confirmée" précédente, indiquée par cookie. Par conséquent, *chaque* valeur de cookie renvoyée par Next, après avoir sauvegardé les données dans le récepteur, doit être confirmée avec un appel à Commit, dans le même ordre dans lequel elles ont été renvoyées par Next. Récepteur: - Ne peut pas traiter plus de MaxItems à la fois. Niveau de base: Il est nécessaire d'implémenter la fonction func Pipe(p Producer, c Consumer) error qui lit les données de la source, les regroupe dans un buffer de taille maximale MaxItems et les sauvegarde dans le récepteur, puis confirme la progression dans la source. */ const MaxItems = 9999 type Producer interface { // Next retourne: // - un lot d'éléments à traiter // - un cookie à confirmer lorsque le traitement est terminé // - une erreur Next() (items []any, cookie int, err error) // Commit est utilisé pour marquer le lot de données comme traité Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }
Une table avec (id PRIMARY KEY, data JSON) est-elle un index PostgreSQL assez bon pour la recherche par clé?
Quelle est la différence entre la virtualisation et la conteneurisation?
Peut-on insérer un autre bloc de code avec des accolades à l'intérieur d'une fonction existante?
Comment avez-vous défini et formulé les tâches dans votre poste précédent?
Comment le code final a-t-il été déployé en environnement de production dans votre dernier projet?