Sobes.tech

Golang

Quelles commandes utilisez-vous habituellement dans le système d'exploitation Linux?

Junior — Middle
Mail.ruMail.ru
134

Quelles approches peuvent être utilisées pour assurer la sécurité des threads lors de l'utilisation de slices dans un environnement multithread?

Middle — Middle+
Betera Group
134

Quelles opérations sont autorisées lors de l'utilisation d'une tranche nil dans le langage de programmation?

Junior — Middle
Кадровое агентство BWG
134

Quelles méthodologies de conception de systèmes privilégies-tu lors de la création de solutions?

Junior — Middle
134

Parlez d'une tâche difficile que vous avez pu résoudre en écrivant un script pour le système Linux

Junior — Middle
Mail.ruMail.ru
134

Comment peut-on réguler la quantité de données stockées dans le cache?

Junior — Middle
КасперскийКасперский
134

Prêt à jouer le rôle de seul spécialiste Backend dans l'équipe

Junior — Middle
FAQ media holding
134

Quelle est la principale raison d'utiliser le type sync.Map en Go?

Junior — Middle
YadroYadro
134

Quelles sont les bonnes pratiques et les antipatterns en testing unitaire ? Comment savoir si les tests sont bons ?

Middle+
X5
134

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

Senior
OZONOZON
134

Avez-vous déjà rencontré des difficultés lors de la mise en œuvre d'interactions entre différents services?

Junior — Middle
Mail.ruMail.ru
134

Comment la transmission d'une tranche (slice) se fait-elle dans une fonction en langage de programmation?

Junior — Middle
МТС DigitalМТС Digital
134

Qu'est-ce que le motif Saga?

Middle+
Magnit Tech
134

Pourquoi n'ont-ils pas pris Testcontainers ?

Senior
OkkoOkko
134

/* 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 }

Middle
Яндекс
134

Une table avec (id PRIMARY KEY, data JSON) est-elle un index PostgreSQL assez bon pour la recherche par clé?

Middle+
МВидеоМВидео
134

Quelle est la différence entre la virtualisation et la conteneurisation?

Middle
YadroYadro
134

Peut-on insérer un autre bloc de code avec des accolades à l'intérieur d'une fonction existante?

Junior — Middle
134

Comment avez-vous défini et formulé les tâches dans votre poste précédent?

Junior — Middle
Сбер КонтактСбер Контакт
134

Comment le code final a-t-il été déployé en environnement de production dans votre dernier projet?

Junior — Middle
IDT
Киберпротект
134
/412