Golang
Que fait defer?
Y a-t-il des commandes ou des directions parmi les équipes ou domaines décrits qui vous parlent particulièrement, ou que vous préféreriez ne pas faire?
// à la recherche du meilleur -- ??? // si non trouvé, compare inflight
À quoi ressemblait une requête de rapport lente et quel était tout le chemin depuis la demande de l'utilisateur jusqu'à l'obtention du résultat?
À quoi sert un tampon de canal?
Qu'est-ce qu'une condition de course et comment la détecter?
Racontez un cas où vous avez réduit le temps de recherche de l'historique des transactions de 2–5 secondes à 150 millisecondes en utilisant l'agrégation de données dans Elasticsearch : quelles étaient les données initiales et l'architecture, qu'est-ce qui a été changé exactement et quel a été le résultat?
De quel type de mise à l'échelle parlons-nous?
Qu'est-ce qu'un contexte en Go?
Quels index avez-vous utilisés en pratique et pourquoi?
// code pour la fonction best() // avec gestion d'erreurs si aucun backend n'est disponible
#claruey #technicien 1. Qu'est-ce qui est génial avec Go ? - les goroutines et le planificateur qui permet de travailler sans penser à la gestion de la concurrence. 2. Quels sont les inconvénients de Go ? - la gestion des erreurs 3. Comment êtes-vous venu à Go ? 4. Qu'est-ce qui garantit la légèreté de Go et pourquoi les goroutines switchent plus rapidement ? Pourquoi cela n'a-t-il pas été possible dans le système d'exploitation ? 5. À quoi renonçons-nous en utilisant des goroutines au lieu des threads du système d'exploitation ? 6. Qu'est-ce que la concurrence et le parallélisme ? 7. Qu'est-ce que l'interface net.Listener et quelles sont ses méthodes ? 8. Avez-vous travaillé directement avec des réseaux ou via des frameworks et lesquels ? 9. En quoi TCP diffère-t-il de UDP et à quoi servent-ils généralement ? 10. Quels sont les risques lors de l'utilisation de TCP et UDP ? 11. Qu'est-ce que bigEndian et littleEndian ? 12. Qu'est-ce que TLS ? 13. Quelles sont les méthodes pour transférer des données entre microservices (par exemple commandes/demandes/réponses/transfert de fichiers) ? Quels modèles ou outils de développement pouvons-nous choisir et quels sont leurs nuances ? 14. Quelles sont les méthodes de transfert de données sur le réseau et leurs avantages/inconvénients ? 15. Avec quels SGBD avez-vous travaillé et quels outils avez-vous utilisés ? 16. Quelle bibliothèque avez-vous utilisée pour chaque base de données en Go ? 17. Comment gérez-vous la croissance de la base de données lors du développement ? 18. Si le schéma de la base de données change, comment le gérez-vous sans détruire les anciennes données ? Qu'en est-il des migrations, leurs avantages et inconvénients ? 19. Comment changez-vous la base de données en production ? Qui l'a fait ? 20. Comment abstraire au mieux le composant base de données de la logique principale pour que les requêtes SQL et méthodes ne se dispersent pas dans le code ? Mettez-le dans un répertoire séparé, passez une interface et utilisez des tags ? 21. Pourquoi les index sont-ils nécessaires et quels sont leurs inconvénients ? 22. On vous a demandé d'écrire du code que vous incluriez dans un projet et comment documenteriez-vous les résultats ? 23. Quelle documentation utilisez-vous habituellement et à quelle fin + où va-t-elle ? Par exemple, qu'est-ce que cette interface et à quoi sert-elle ? 24. Utilisez-vous activement go doc et est-ce une pratique dans votre équipe ? 25. Accompagnez-vous des spécifications ou de la documentation markdown ? Comment faites-vous cela ? 26. Quel était votre flux de travail, qui a assigné les tâches et quelle était la prochaine étape ? 27. À quel point vos tâches sont-elles détaillées ? Doivent-elles simplement accéder ou aussi penser à l'architecture et demander à d'autres ? 28. Nous avons un projet avec de nombreuses goroutines. Quels outils de synchronisation utilisez-vous pour que toutes les goroutines se terminent de manière élégante et sûre ? 29. Où dans le projet avez-vous utilisé des goroutines ? 30. Lors du passage d'une interface à une fonction, combien d'octets cela occupe-t-il ? 31. Qu'est-ce qu'un httpHandler, que reçoit-il, quelle structure a-t-il, que retourne-t-il, quels sont ses arguments et sa signature ? À quoi sert-il et où est-il utilisé ? 32. Qu'est-ce que middleware et comment l'utiliser ? Comment était-ce dans votre projet ? 33. Quelles propriétés du langage Go permettent de construire des middlewares et quelle est la fonction qu'il prend et ce qu'il donne ? 34. Si vous avez une fonction qui prend une autre fonction et après exécution démarre une goroutine et fait un callback, et que vous passez une méthode d'une structure qui ne prend pas d'arguments et ne retourne rien, y aura-t-il une erreur de compilation ou autre chose ? Elle a une signature vide, et vous avez une méthode qui attend cette fonction, mais au lieu d'une fonction simple, vous avez passé une méthode, c'est-à-dire un objet.méthode. 35. Il y a une fonction qui prend un int32 et vous essayez de passer un int16, que se passera-t-il et à quelle étape ? 36. Combien d'octets une tranche occupe-t-elle en mémoire sur amd64 ? 24 octets, et les données elles-mêmes ne sont pas passées à la fonction ? 37. Comment pouvez-vous implémenter un ensemble en Golang et quelles sont leurs différences et nuances ? 38. Qu'est-ce qu'un UUID et l'avez-vous utilisé dans votre projet, où et quelle bibliothèque avez-vous utilisée ? 39. Vous avez une carte avec 1 000 000 d'éléments, que se passe-t-il si vous en ajoutez un autre ? Quels sont les scénarios possibles et comment la vitesse d'accès aux données change-t-elle ? 41. Avez-vous utilisé Docker (conteneurs/pods) ? Quels autres services avez-vous utilisés avant Docker, comme "comment déployer un binaire sur un serveur" ? Après avoir compilé votre code, en quoi doit-il se transformer pour que le service démarre au démarrage du système d'exploitation ?
Qu'est-ce que le problème N+1 dans les bases de données?