Rust

Design Patterns Rust

Builder pattern, newtype, RAII, typestate, error handling patterns, interior mutability patterns

20 questions d'entretien·
Senior
1

Quel est l'avantage principal du pattern Builder en Rust par rapport à un constructeur avec de nombreux paramètres ?

Réponse

Le Builder pattern permet une construction d'objets lisible et flexible en chaînant des méthodes fluides. En Rust, il évite les erreurs liées à l'ordre des paramètres, permet des valeurs par défaut, et rend le code auto-documenté. Contrairement à un constructeur avec beaucoup d'arguments positionnels, le Builder explicite chaque champ par son nom de méthode.

2

Dans le pattern Newtype, quel problème résout l'encapsulation d'un type primitif dans une struct tuple ?

Réponse

Le pattern Newtype crée un type distinct au niveau du système de types, empêchant les confusions entre valeurs sémantiquement différentes mais de même type sous-jacent. Par exemple, UserId(u64) et ProductId(u64) sont incompatibles à la compilation, évitant les bugs où l'on passerait un ID produit là où un ID utilisateur est attendu. Ce pattern n'a aucun coût à l'exécution grâce à la garantie de représentation mémoire identique.

3

Comment le pattern RAII garantit-il la libération des ressources en Rust ?

Réponse

RAII (Resource Acquisition Is Initialization) lie le cycle de vie d'une ressource au scope d'une variable. En Rust, le trait Drop est appelé automatiquement quand une valeur sort du scope, garantissant la libération déterministe des ressources sans garbage collector. Ce pattern est fondamental pour les fichiers, connexions réseau, locks, et toute ressource nécessitant un nettoyage explicite.

4

Quel est le principe du pattern Typestate pour encoder les états d'un objet dans le système de types ?

5

Quel pattern d'error handling est recommandé pour propager les erreurs avec contexte additionnel ?

+17 questions d'entretien

Maîtrise Rust pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement