Golang
Comment résoudre le problème du message perdu et l'absence de garantie de livraison dans Redis pub/sub pour les échecs?
Comment trouves-tu travailler avec des histoires de produits et leur influence sur les métriques utilisateur?
Avez-vous déjà dû programmer en C?
Parlez-moi de vous et de votre expérience
Comment trouver des anagrammes d'un mot dans un dictionnaire?
Qu'est-ce qu'un canal en Go et quels sont ses principaux domaines d'application?
Quelle erreur se produira lors de la tentative de modifier un caractère de la chaîne : une panique, une erreur gérée ou autre chose ?
Qu'est-ce que le signal SIGTERM (kill -15) et pourquoi est-il préférable de l'utiliser plutôt que SIGKILL (kill -9) ?
Quelles sont les niveaux d'isolation des transactions ? Lesquels avez-vous utilisés ?
Souvenez-vous d'une situation de votre expérience précédente où vous avez vu qu'une solution architecturale proposée par un chef d'équipe ou un architecte n'était pas optimale. Que faites-vous dans une telle situation ? Défendiez-vous votre point de vue d'une manière ou d'une autre ?
Peut-on implémenter RPC via REST et vice versa ? Quelle est la différence fondamentale ?
Que se passe-t-il lorsque la capacité d'une tranche est épuisée et qu'un autre élément est ajouté?
Quelle est la différence entre HTTP/1, HTTP/2 et HTTP/3?
Qui d'autre faisait partie de l'équipe en plus de toi et du chef d'équipe?
Qui fait partie de l'équipe en termes de taille?
Préférez-vous le développement de produits ou le développement d'infrastructure?
Quelle est l'activité de la recherche en ce moment ? Êtes-vous déjà en train de préparer votre départ de [entreprise] ou regardez-vous simplement des offres intéressantes pour l'instant ?
Les mises à jour des documents arrivent au service message Document { string Url = 1; // URL du document, son identifiant unique uint64 PubDate = 2; // heure de publication déclarée du document uint64 FetchTime = 3; // heure de réception de cette mise à jour du document, peut être considérée comme un identifiant de version. La paire (Url, FetchTime) est unique. string Text = 4; // texte du document uint64 FirstFetchTime = 5; // initialement absent, doit être rempli } Les documents peuvent arriver dans n'importe quel ordre (pas dans l'ordre de leur mise à jour), et il peut également y avoir des messages en double. Il est nécessaire de former en sortie des messages identiques, mais avec des champs corrigés selon les règles suivantes (tout ce qui est indiqué ci-dessous concerne un groupe de documents avec le même champ Url): Le champ Text et FetchTime doivent être ceux du document avec le plus grand FetchTime reçu jusqu'à présent. Le champ PubDate doit être celui du message avec le plus petit FetchTime. Le champ FirstFetchTime doit être égal à la valeur minimale de FetchTime. Autrement dit, à chaque instant, nous prenons PubDate et FirstFetchTime du premier version reçu jusqu'à présent (si on les trie par FetchTime), et Text de la dernière. L'interface dans le code peut être implémentée ainsi: type Processor interface { Process(doc *Document) (*Document, error) } Ce code fonctionnera dans un service qui lit des messages d'une file (Kafka ou similaire), et écrit également le résultat dans la file. Si Process retourne Null, rien n'est écrit dans la file.
pprof vous montrera-t-il toujours une fuite de mémoire ou un dépassement de limite?
Raconte brièvement ce que vous avez fait dans vos emplois précédents et quelles fonctionnalités vous avez réalisées.