Sobes.tech

Golang

Il y a 3 entités : utilisateur, chat, message • L'utilisateur a un nom et une date d'inscription • Le chat a un nom et une date de création • Le message a du texte, un auteur et une date de création • Un utilisateur peut appartenir à plusieurs chats en même temps • Un message appartient obligatoirement à un chat, et ne peut appartenir qu'à un seul chat à la fois • Il faut décrire le domaine sous forme de tables

183

Comment fonctionne un slice en Go de l'intérieur ? Comment fonctionne la fonction append ?

183

Qu'est-ce qu'une condition de course en Go ? Donnez un exemple.

182

Qu'est-ce que EXPLAIN et EXPLAIN ANALYZE dans PostgreSQL, quelle est la différence?

182

Parle-moi d'un défi technique intéressant ou complexe que tu as résolu

177

Combien d'années d'expérience commerciale en développement avec Go?

175

Nous avons une base de données avec des mots de passe utilisateur, les mots de passe sont hachés (fonction hashPassword), et nous connaissons également l'ensemble des caractères pouvant être utilisés dans les mots de passe (variable alphabet). Notre tâche est d'implémenter la fonction RecoverPassword pour qu'elle restaure le mot de passe à partir du hash connu et que TestRecoverPassword réussisse. Exigences de base: Tout moyen est acceptable package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() {

173

Avec quelles bases de données avez-vous travaillé le plus étroitement?

171

Quels sont les méthodes HTTP existantes ? Lesquelles sont idempotentes ?

171

package principal importer ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecupererMotDePasse(h []byte) string { return "" } func hashMotDePasse(entree string) []byte { h := md5.Sum([]byte(entree)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashMotDePasse(exp) act := RecupererMotDePasse(h) if act != exp { fmt.Printf("Erreur : on attendait %q, obtenu %q\n", exp, act) ok = false } } if ok { fmt.Println("Tous les tests ont réussi") } }

170

Comment se déroulera le processus d'envoi et de réception de messages entre deux clients ? Décrivez le flux complet.

169

Revue de code : cache en Go avec mutex. Trouvez des problèmes et proposez des améliorations. Condition : charge de lecture/écriture 80/20.

167

package principal import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RécupérerMotDePasse(h []byte) string { return "" } func hashMotDePasse(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashMotDePasse(exp) act := RécupérerMotDePasse(h) if act != exp { fmt.Printf("Erreur : attendu %q, obtenu %q\n", exp, act) ok = false } } if ok { fmt.Println("Tous les tests ont réussi") } } Pour une exécution correcte du code : point d'entrée -- fonction main dans le package main Tâche : Implémenter la fonction RécupérerMotDePasse, qui restaure le mot de passe d'origine à partir du hash MD5, composé de caractères de l'alphabet donné.

164

Comment réaliser un arrêt gracieux d'un service Go dans Kubernetes lors du déploiement d'une nouvelle version?

163

Décrivez la structure d'une requête et d'une réponse HTTP. Comment sont classés les codes de réponse?

162

Pourquoi envisages-tu de nouvelles propositions ? Recherche active ou passive ?

161

Que veux-tu maintenant — quelles sont tes attentes pour le nouveau travail?

159

Quelles tables et champs sont nécessaires dans la base de données PostgreSQL pour ce messager?

159

Qu'est-ce qui a été le plus difficile et le plus intéressant lors de la migration d'un monolithe vers des microservices?

156

Que signifie un processus affichant 150 % CPU dans le top ? Est-ce normal ?

154
/4