Golang
Il existe une bibliothèque en Go — LRU, où l'on peut passer Any et définir TTL. Pourquoi Redis a-t-il été choisi plutôt qu'elle?
Y a-t-il des questions sur les étapes de l'entretien?
Comment, au niveau de la transaction dans la base de données, envoyer uniquement un groupe lorsque plusieurs répondent simultanément à un signal dans un système de réponse rapide?
En traçant, combien de commandes, de services, combien d'intégrations avec leurs propres commandes environ?
Dans l'architecture x86, l'instruction d'interruption occupe deux octets, mais l'interruption numéro 3 a une variante alternative d'un octet. Pourquoi cela était-il nécessaire?
Questions sur la charge, l'architecture des nouveaux services (feuilles de calcul et tarifs) — comment tu le perçois?
Pourquoi envisages-tu de quitter ton emploi actuel maintenant?
As-tu actuellement des offres ou tu passes encore des entretiens?
À quel stade en êtes-vous dans votre recherche d'emploi : considérez-vous activement ou passivement les offres d'emploi?
Avec quelles bases de données avez-vous travaillé?
Pourquoi utiliser un index B-tree plutôt qu'un arbre binaire?
Pouvez-vous donner un exemple de fonction de hachage?
Qu'est-ce qu'un index composé?
Le chef de produit demande de réaliser en un mois une fonctionnalité : en l'absence d'appartements à Saint-Pétersbourg pour les visites de mai, afficher des options similaires dans les villes voisines (Vyborg, Kronstadt). Pas d'analytique, pas de cahier des charges. Décris les étapes depuis la conversation jusqu'au premier commit.
Dans le résumé, il est mentionné que vous avez mis en place le tracing — pouvez-vous en dire plus?
Que se passe-t-il si vous laissez un select sans cas en Go?
Quelles méthodes connais-tu pour basculer entre les goroutines ? Comment basculer manuellement une goroutine ?
Quels modèles de conception connaissez-vous ? Quels groupes de modèles existent-ils ?
Comment faire pour ne pas aller du tout au service qui tombera forcément ou sera inaccessible?
func fanin[T any](chs ...<-chan T) chan T { out := make(chan T) wg := sync.WaitGroup{} for _, ch := range chs { wg.Add(1) go func(c <-chan T) { defer wg.Done() for v := range c { out <- v } }(ch) } go func() { wg.Wait() close(out) }() return out } func main() { ch1 := make(chan int, 5) ch2 := make(chan int, 5) for i := 1; i <= 5; i++ { ch1 <- i ch2 <- i * 2 } close(ch1) close(ch2) fmt.Println(fanin(ch1, ch2)) }