Golang
Comment s'assurer que le jeton utilisé pour accéder au service est valide, n'a pas été modifié et n'a pas été compromis?
Quelle est la raison de quitter Wildberries?
Qu'est-ce que HTTPS ? En quoi diffère-t-il de HTTP ? Comment protège-t-il contre l'attaque de 'l'homme du milieu' ?
Que se passe-t-il si on désactive l'autovacuum dans PostgreSQL ? Quels problèmes cela peut-il entraîner ?
Préférez-vous le développement de produits ou le développement d'infrastructure?
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.
Quelle est la complexité algorithmique actuelle de la recherche?
Qu'est-ce qu'un Deadlock ? Comment éviter une interblocage ?
Raconte-moi ce que tu faisais dans ton emploi actuel.
Travaillez-vous encore à votre poste actuel?
Connaissez-vous Linux et à quel niveau?
Comment Redis et Postgres seront-ils synchronisés ? Après tout, ils peuvent diverger.
Comment te sens-tu dans l'équipe en termes de niveau ? Qu'est-ce qui te manque pour une position de senior complète ?
Parlez-nous du modèle Transactional Outbox — comment il fonctionne et à quoi il sert.
Pourquoi est-ce une tâche techniquement difficile ? Pourquoi pas simplement une fonction de 100 lignes ?
Combien de goroutines peut-on créer sur une seule machine ? Comment compter ?
Est-ce que la taille du tampon du canal influence quelque chose dans le pool de workers?
Qu'est-ce qu'une goroutine ? Pourquoi est-elle appelée légère ? Quelle est la taille initiale de la mémoire d'une goroutine et quelle est la maximale ?
Quels sont les moyens de synchronisation en concurrence dans Go?
Quelles sont les références que vous avez utilisées?