← Ver a árvore completa

ROTA · 30 CLASSES · 1 GRUPOS

O Jeito Rust

Escreva APIs idiomáticas, modele contratos e refatore código com critérios verificáveis.

Pré-requisitos orientam, mas nunca bloqueiam. Sete classes são grátis com conta, nas três rotas.

O ARCO DA ROTA

01Idiomático

ORDEM RECOMENDADA

30 classes, do primeiro passo ao fechamento.

Cada classe informa a duração estimada. Os exercícios usam Rust na sua máquina. Você pode sair da ordem quando outro nó fizer mais sentido.

  1. 01
    Forma, feedback e refatoraçãoRust idiomático: contratos, não gosto pessoal

    Separe correção, contrato público, idioma Rust e convenção local para revisar e refatorar com critérios verificáveis.

  2. 02
    Forma, feedback e refatoraçãorustfmt: automatize a forma, revise o design

    Use rustfmt como forma compartilhada automática e mantenha decisões de API, algoritmo e contrato em uma revisão separada.

  3. 03
    Forma, feedback e refatoraçãoClippy como revisor, não como oráculo

    Leia grupos e motivos de lints, confirme o risco no domínio e use refactor ou exceção local justificada sem tratar Clippy como oráculo.

  4. 04
    Forma, feedback e refatoraçãoLeia o diagnóstico inteiro: erro, nota e ajuda

    Leia código, spans, notas e ajuda de rustc, reduza um reprodutor mínimo e confirme se a proposta preserva o contrato.

  5. 05
    Forma, feedback e refatoraçãoRefatore com rede de segurança: comportamento e forma

    Caracterize o comportamento, refatore uma dimensão de ownership e prove valores e forma da API com testes e requisitos de fonte.

  6. 06
    APIs que parecem RustNomes de módulos, tipos e funções que desaparecem no uso

    Escolha nomes de crates, módulos, tipos e funções que comunicam o contrato no ponto de uso sem repetição nem vagueza.

  7. 07
    APIs que parecem Rustnew, Default e construtores que preservam invariantes

    Use new, Result e Default para construir valores válidos sem esconder falhas nem inventar padrões para dados transparentes.

  8. 08
    APIs que parecem RustOwnership na API: &str, &[T], valores e Cow

    Escolha borrow, mutação e ownership na assinatura conforme a função lê, altera, armazena ou consome o valor.

  9. 09
    APIs que parecem RustBuilders e defaults sem estados parcialmente válidos

    Modele configuração parcial em builders, valide em build e use Default somente para escolhas válidas.

  10. 10
    APIs que parecem RustMódulos, visibilidade e reexports como contrato público

    Separe a organização interna da superfície suportada com módulos privados, pub(crate), pub use e internals selados.

  11. 11
    Conversões e tipos com intençãoFrom e Into: conversões infalíveis e coerência

    Implemente From para conversões infalíveis, receba Into quando isso ajuda o chamador e respeite significado, coherence e SemVer.

  12. 12
    Conversões e tipos com intençãoTryFrom: validação na fronteira do tipo

    Use TryFrom e erro tipado para validar na construção, manter invariantes depois do sucesso e separar regras locais de contexto externo.

  13. 13
    Conversões e tipos com intençãoAsRef, Borrow e Deref: contratos diferentes

    Escolha AsRef para visões baratas, Borrow para consultas equivalentes e Deref somente para acesso transparente semelhante a ponteiros.

  14. 14
    Conversões e tipos com intençãoNewtypes: semântica nova sem custo de runtime

    Use newtypes para separar significados, preservar invariantes, escolher traits e criar pontos locais de coherence sem prometer ABI indevida.

  15. 15
    Conversões e tipos com intençãoType-state quando a sequência realmente merece tipos

    Modele sequências estáveis com type-state, transições que consomem self e métodos por estado, mas prefira enum para fluxos dinâmicos.

  16. 16
    Design de errosErros tipados em bibliotecas: variantes para decisões

    Projete erros públicos com variantes ligadas às decisões do chamador, dados estáveis, non_exhaustive e uma política consciente de SemVer.

  17. 17
    Design de errossource e contexto: preserve causa, acrescente operação

    Implemente Display e Error::source sem duplicação, acrescente contexto onde a operação é conhecida e apresente a cadeia uma vez.

  18. 18
    Design de errosthiserror: remova boilerplate sem esconder o contrato

    Use thiserror para gerar Display, Error e From, sem delegar à macro a escolha de variantes, dados públicos ou política de conversão.

  19. 19
    Design de errosanyhow na aplicação: contexto na borda

    Use anyhow em aplicações que relatam falhas, preserve erros tipados nas bibliotecas e acrescente contexto de operação sem lavar a causa.

  20. 20
    Design de errospanic, unwrap e expect: política baseada em invariantes

    Escolha Result para falhas esperadas e panic para invariantes violadas ou suposições irrecuperáveis, com expect que declara a prova.

  21. 21
    Documentação, testes e ergonomiaDoc comments e exemplos que compilam

    Escreva doc comments como contratos verificáveis de erros, panics e safety, com exemplos completos que rustdoc mantém compiláveis.

  22. 22
    Documentação, testes e ergonomiaTestes unitários, integração e propriedades do contrato

    Teste comportamento público, bordas e propriedades sem acoplar a suíte à estrutura privada que uma refatoração precisa mudar.

  23. 23
    Documentação, testes e ergonomiaIntoIterator e coleções: APIs que aceitam o uso natural

    Implemente IntoIterator para coleção própria, referência e referência mutável com itens e lifetimes corretos, sem criar iteradores desnecessários.

  24. 24
    Documentação, testes e ergonomiaTraits e callbacks: bounds mínimos e ergonomia do chamador

    Escolha Fn, FnMut ou FnOnce pela quantidade de chamadas e pelo consumo das capturas, sem impor bounds que o corpo não usa.

  25. 25
    Fronteiras avançadasunsafe com contrato: safety comments e menor superfície

    Reduza a superfície unsafe, escreva contratos Safety verificáveis e exponha wrappers seguros que preservam validade, alinhamento, aliasing e lifetimes.

  26. 26
    Fronteiras avançadasDesempenho medido: clones, alocações e hot paths

    Meça alocações, clones, complexidade, cache, latência e throughput antes de mudar uma API ou reduzir clareza em um hot path.

  27. 27
    Fronteiras avançadasAPIs async: cancelamento, Send e trabalho bloqueante

    Projete APIs async com ownership através de await, cancelamento seguro, Send somente quando necessário, trabalho bloqueante isolado e tarefas estruturadas.

  28. 28
    Refatoração e auditoria públicaRefatoração orientada a testes e invariantes

    Caracterize comportamento público, registre invariantes e refatore uma dimensão por vez sem transformar goldens em testes de detalhes privados.

  29. 29
    Refatoração e auditoria públicaCode review de API pública: compatibilidade e SemVer

    Revise caminhos, assinaturas, traits, enums, features e MSRV, e use SemVer para administrar o risco de mudanças públicas.

  30. 30
    Refatoração e auditoria públicaAuditoria final de uma crate pública

    Execute uma auditoria limitada de API pública com evidências para tipos, erros, docs, testes, unsafe, desempenho, async e compatibilidade.

SUA PRIMEIRA CLASSE

Rust idiomático: contratos, não gosto pessoal

Separe correção, contrato público, idioma Rust e convenção local para revisar e refatorar com critérios verificáveis.

Pratique com um projeto local

Entre para ler a aula, baixar o projeto e executar os testes com Cargo na sua máquina.

Começar pela rota →

ESTA ROTA E TODAS AS OUTRAS

Qualquer plano abre os 126 nós.

Mensal R$19,90 · anual R$149 · lifetime R$499. Todos têm garantia de 7 dias.

Comparar os 3 planos →Começar pelas classes grátis