# Padrões de design em Rust (Rust) > Builder pattern, newtype, RAII, typestate, padrões de tratamento de erros, padrões de mutabilidade interior - 20 perguntas de entrevista - Senior - [Perguntas de entrevista: Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista.md) ## 1. Qual é a principal vantagem do pattern Builder em Rust em comparação com um construtor com muitos parâmetros? **Resposta** O Builder pattern permite uma construção de objetos legível e flexível encadeando métodos fluentes. Em Rust, ele evita erros relacionados à ordem dos parâmetros, permite valores padrão e torna o código autodocumentado. Diferente de um construtor com muitos argumentos posicionais, o Builder torna cada campo explícito através do nome do seu método. ## 2. No pattern Newtype, qual problema resolve envolver um tipo primitivo em uma tuple struct? **Resposta** O pattern Newtype cria um tipo distinto no nível do sistema de tipos, evitando confusões entre valores semanticamente diferentes mas do mesmo tipo subjacente. Por exemplo, UserId(u64) e ProductId(u64) são incompatíveis em compile time, evitando bugs onde um ID de produto seria passado onde um ID de usuário é esperado. Esse pattern tem custo zero em runtime graças à garantia de representação de memória idêntica. ## 3. Como o pattern RAII garante a liberação de recursos em Rust? **Resposta** RAII (Resource Acquisition Is Initialization) vincula o ciclo de vida de um recurso ao scope de uma variável. Em Rust, o trait Drop é chamado automaticamente quando um valor sai do scope, garantindo a liberação determinística de recursos sem garbage collector. Esse pattern é fundamental para arquivos, conexões de rede, locks e qualquer recurso que exija uma limpeza explícita. ## Mais 17 perguntas disponiveis - Qual é o princípio do pattern Typestate para codificar os estados de um objeto no sistema de tipos? - Qual padrão de tratamento de erros é recomendado para propagar erros com contexto adicional? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista Rust - [Fundamentos de Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/rust-basics.md): 25 perguntas, Junior - [Ownership & Borrowing](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/ownership-borrowing.md): 22 perguntas, Junior - [Structs & Enums](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/structs-enums.md): 20 perguntas, Junior - [Tratamento de erros](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/error-handling.md): 18 perguntas, Junior - [Coleções](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/collections.md): 20 perguntas, Junior - [Módulos e Pacotes](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/modules-packages.md): 18 perguntas, Junior - [Traits](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/traits.md): 22 perguntas, Mid-Level - [Generics](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/generics.md): 20 perguntas, Mid-Level - [Lifetimes](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/lifetimes.md): 20 perguntas, Mid-Level - [Iterators & Closures](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/iterators-closures.md): 22 perguntas, Mid-Level - [Smart Pointers](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/smart-pointers.md): 22 perguntas, Mid-Level - [Concurrency Basics](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/concurrency-basics.md): 20 perguntas, Mid-Level - [async/await](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/async-await.md): 22 perguntas, Mid-Level - [Testing](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/testing.md): 18 perguntas, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/cargo-ecosystem.md): 18 perguntas, Mid-Level - [Pattern Matching](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/pattern-matching.md): 18 perguntas, Mid-Level - [Macros](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/macros.md): 20 perguntas, Mid-Level - [Serde e serialização](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/serde-serialization.md): 20 perguntas, Mid-Level - [Unsafe Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/unsafe-rust.md): 20 perguntas, Senior - [Traits avançados](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/advanced-traits.md): 22 perguntas, Senior - [Lifetimes Avançados](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/advanced-lifetimes.md): 20 perguntas, Senior - [Type System](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/type-system.md): 20 perguntas, Senior - [Tokio & Async I/O](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/tokio-async.md): 22 perguntas, Senior - [Otimização de Desempenho](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/performance-optimization.md): 20 perguntas, Senior - [Memory Management](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/memory-management.md): 20 perguntas, Senior - [Web Frameworks](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/web-frameworks.md): 22 perguntas, Senior - [Database Integration](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/database-integration.md): 20 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/design-patterns