Rust no portfólio: 5 projetos que impressionarão qualquer empregador

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que Rust é seu trunfo no portfólio

\n\n

Se você está lendo este artigo, provavelmente já sabe que Rust não é apenas mais uma linguagem da moda. É uma tecnologia adorada no FAANG e em startups hypadas. Mas uma coisa é dizer no currículo "Conheço Rust", e outra bem diferente é mostrar um projeto funcional. Sem portfólio, até o código mais genial continua sendo apenas texto em um editor de texto.

\n\n

Neste artigo, não vamos discutir sintaxe ou ensinar os fundamentos. Vamos além: mostrarei 5 ideias reais de projetos que atendem às necessidades do mercado e farão o recrutador clicar no seu currículo. Cada projeto não é apenas um "todo list", mas uma ferramenta completa que você pode apresentar em uma entrevista ou publicar no GitHub.

\n\n

Bônus: adicionei exemplos de código para você começar imediatamente. Vamos lá!

\n\n

Projeto nº 1: Utilitário CLI para análise de logs

\n\n

A maneira mais rápida de entrar no mundo Rust é escrever algo útil para a linha de comando. Utilitários CLI são o pão com manteiga do desenvolvedor Rust. São rápidos, seguros e ideais para demonstrar habilidades com std::fs, clap e tratamento de erros.

\n\n

O que este projeto faz?

\n

O utilitário log-analyzer lê um arquivo de texto com logs (por exemplo, do Nginx ou da sua aplicação) e exibe estatísticas: número de erros, IPs mais frequentes, timestamps. Tudo isso com saída colorida no terminal.

\n\n

Por que isso é ótimo para o portfólio?

\n
    \n
  • Trabalho com sistema de arquivos e streams
  • \n
  • Parsing de strings usando expressões regulares ou nom
  • \n
  • Argumentos de linha de comando (crate clap)
  • \n
  • Saída colorida (crate colored)
  • \n
\n\n

Exemplo de código

\n
use clap::Parser;\nuse std::fs::File;\nuse std::io::{BufRead, BufReader};\n\n#[derive(Parser)]\n#[command(name = "log-analyzer")]\nstruct Args {\n    #[arg(short, long)]\n    file: String,\n}\n\nfn main() {\n    let args = Args::parse();\n    let file = File::open(&args.file).expect("Não foi possível abrir o arquivo");\n    let reader = BufReader::new(file);\n\n    let mut error_count = 0;\n    for line in reader.lines() {\n        let line = line.unwrap();\n        if line.contains("ERROR") || line.contains("error") {\n            error_count += 1;\n        }\n    }\n\n    println!("Erros encontrados: {}", error_count);\n}
\n\n

Dica: Adicione tratamento de argumentos via clap e suporte ao formato JSON. Isso mostrará que você sabe trabalhar com serialização.

\n\n

Projeto nº 2: Servidor web com Actix-web e REST API

\n\n

Rust não é apenas para programação de sistemas. O desenvolvimento web em Rust está ganhando força, e actix-web é um dos frameworks mais rápidos do mundo. Crie uma REST API simples para gerenciamento de tarefas (CRUD). É um clássico, mas em Rust parece novo.

\n\n

O que implementar?

\n
    \n
  • Endpoints: GET, POST, PUT, DELETE para a entidade "Task"
  • \n
  • Armazenamento de dados em memória (com possibilidade de expansão para banco de dados)
  • \n
  • Validação de dados de entrada via serde
  • \n
  • Tratamento de erros e retorno de códigos HTTP adequados
  • \n
\n\n

Por que isso dará peso ao portfólio?

\n

Você mostrará que entende como construir APIs modernas. Empregadores procuram pessoas que sabem escrever não apenas scripts, mas também o backend. Além disso, actix-web é uma excelente maneira de demonstrar conhecimento de assincronia e concorrência.

\n\n

Código para começar

\n
use actix_web::{web, App, HttpServer, Responder, HttpResponse};\nuse serde::{Deserialize, Serialize};\nuse std::sync::Mutex;\n\n#[derive(Serialize, Deserialize, Clone)]\nstruct Task {\n    id: u32,\n    title: String,\n    completed: bool,\n}\n\nstruct AppState {\n    tasks: Mutex<Vec<Task>>,\n}\n\nasync fn get_tasks(data: web::Data<AppState>)                

Blogs

Book Recommendations