Rust

Padrões de design em Rust

Builder pattern, newtype, RAII, typestate, padrões de tratamento de erros, padrões de mutabilidade interior

20 perguntas de entrevista·
Senior
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.

4

Qual é o princípio do pattern Typestate para codificar os estados de um objeto no sistema de tipos?

5

Qual padrão de tratamento de erros é recomendado para propagar erros com contexto adicional?

+17 perguntas de entrevista

Domine Rust para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis