Rust

Design Pattern in Rust

Builder pattern, newtype, RAII, typestate, pattern di gestione degli errori, pattern di interior mutability

20 domande da colloquio·
Senior
1

Qual è il vantaggio principale del pattern Builder in Rust rispetto a un costruttore con molti parametri?

Risposta

Il pattern Builder consente una costruzione di oggetti leggibile e flessibile concatenando metodi fluenti. In Rust evita errori legati all'ordine dei parametri, permette valori predefiniti e rende il codice auto-documentante. A differenza di un costruttore con molti argomenti posizionali, il Builder rende ogni campo esplicito tramite il nome del suo metodo.

2

Nel pattern Newtype, quale problema risolve l'incapsulamento di un tipo primitivo in una tuple struct?

Risposta

Il pattern Newtype crea un tipo distinto a livello del sistema dei tipi, prevenendo confusioni tra valori semanticamente diversi ma con lo stesso tipo sottostante. Ad esempio, UserId(u64) e ProductId(u64) sono incompatibili a compile-time, evitando bug in cui un ID prodotto verrebbe passato dove è atteso un ID utente. Questo pattern ha costo runtime zero grazie alla garanzia di rappresentazione in memoria identica.

3

Come garantisce il pattern RAII il rilascio delle risorse in Rust?

Risposta

RAII (Resource Acquisition Is Initialization) lega il ciclo di vita di una risorsa allo scope di una variabile. In Rust il trait Drop viene chiamato automaticamente quando un valore esce dallo scope, garantendo un rilascio deterministico delle risorse senza garbage collector. Questo pattern è fondamentale per file, connessioni di rete, lock e qualsiasi risorsa che richieda una pulizia esplicita.

4

Qual è il principio del pattern Typestate per codificare gli stati di un oggetto nel sistema dei tipi?

5

Quale pattern di error handling è consigliato per propagare gli errori con contesto aggiuntivo?

+17 domande da colloquio

Padroneggia Rust per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis