Quel a été le plus grand projet de base de données que vous avez dû réaliser ou maintenir ?
Golang
À quelles étapes du processus d'entretien dans différentes organisations pose-t-on souvent cette question?
Comment les requêtes sont-elles effectuées vers la base de données PostgreSQL?
Pouvez-vous expliquer le principe de fonctionnement de gRPC et ses principales caractéristiques?
Combien de requêtes d'écriture par seconde étaient envoyées aux données?
Dans quelle couche sont placés les clients pour les services externes et les systèmes?
Sur combien d'instances/conteneurs le service fonctionnait-il?
Quelle est votre expérience dans le développement d'applications utilisant le multithreading et les calculs parallèles?
Selon quel principe diminuer ou augmenter le compteur have?
Peux-tu te faire une idée des hôtes ? Combien d'hôtes, combien de conteneurs sont lancés ?
Quel a été le projet de plus longue durée sur lequel vous avez travaillé?
Comment la connexion et l'affichage des données sont-ils effectués dans Grafana?
func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }
""" Les sièges dans une salle de cinéma sont alignés en une seule rangée. Un spectateur qui vient d'arriver choisit une place, pour s'asseoir aussi loin que possible des autres spectateurs dans la rangée. Autrement dit, la distance entre cette place, et le spectateur le plus proche doit être maximale. Il est garanti qu'il y a toujours des places libres et qu'au moins un spectateur est déjà assis. Écrivez une fonction qui, étant donné une rangée de places (un tableau de zéros et de uns), renvoie la distance (nombre d'espaces entre les sièges) entre la place choisie et le spectateur le plus proche. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """
Comment déterminer visuellement ou algorithmiquement qu'un élément est unique dans la structure de données Map?
Comment organiser l'architecture pour une requête qui exécute la logique métier, appelle un service externe (Google) et enregistre le résultat dans la base de données ? Décrivez en couches de haut en bas.
/* 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 }
Quels indicateurs de performance avez-vous utilisés pour évaluer votre travail sur le dernier projet?
Travaillez-vous actuellement ou pas, et dans quel format : bureau, hybride, télétravail?
func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) n := len(s) for right := 0; right < n; right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }