Introdução

Neste tutorial, vamos explorar o Racket, uma linguagem de programação funcional derivada do Scheme, e mostrar como desenvolver aplicações de linha de comando utilizando o framework Racket-Based CLI. Este guia profundo e prático é moldado para desenvolvedores interessados em aprender sobre a programação funcional em Racket e como criar interfaces de linha de comando interativas. Desbravaremos as ferramentas de teste automatizado em Racket, proporcionando um ciclo de desenvolvimento robusto e eficiente. Se você é novo no Racket ou busca expandir suas habilidades, este tutorial irá guiá-lo em cada passo do processo, desde a configuração do ambiente até a execução de testes automatizados.

Etapas

  1. Configuração do Ambiente de Desenvolvimento

    Certifique-se de ter o Racket instalado em sua máquina. Você pode baixar a versão mais recente do Racket em https://racket-lang.org/. Após a instalação, verifique se o comando ‘racket’ está acessível no terminal executando o comando `racket –version`. Isso confirmará que o Racket está pronto para uso.

    commands
    # Verificar versão do Racket
    racket --version

  2. Criando o Projeto de Linha de Comando

    Crie um novo diretório para o seu projeto. Dentro deste diretório, crie um arquivo chamado `main.rkt`, que será o ponto de entrada da sua aplicação de linha de comando.

    commands
    # Criar diretório do projeto
    mkdir meu_projeto_racket
    cd meu_projeto_racket
    # Criar arquivo main.rkt
    touch main.rkt

  3. Implementação de uma Aplicação de Linha de Comando Simples

    Adicione o seguinte código ao arquivo `main.rkt`. Este exemplo cria uma aplicação de linha de comando que aceita uma entrada do usuário e exibe uma saudação personalizada.

    main.rkt
    #lang racket
    
    (define (saudacao nome)
      (printf "Olá, ~a! Bem-vindo ao Racket CLI!~n" nome))
    
    (define (main)
      (printf "Por favor, insira seu nome: ")
      (let ([nome (read-line)])
        (saudacao nome)))
    
    (main)

  4. Executando a Aplicação

    Para executar sua aplicação, use o seguinte comando no terminal. Isso iniciará a aplicação e solicitará ao usuário que insira seu nome.

    commands
    # Executar a aplicação
    racket main.rkt

  5. Introduzindo Argumentos de Linha de Comando

    Vamos modificar o `main.rkt` para que ele aceite um argumento de linha de comando em vez de solicitar uma entrada interativa. Substitua o conteúdo de `main` pelo seguinte código:

    main.rkt
    #lang racket
    
    (define (saudacao nome)
      (printf "Olá, ~a! Bem-vindo ao Racket CLI!~n" nome))
    
    (define (main)
      (define nome (vector-ref (current-command-line-arguments) 0))
      (saudacao nome))
    
    (main)

  6. Executando com Argumentos

    Agora, ao executar sua aplicação, você poderá passar um argumento diretamente do terminal. Utilize o seguinte comando para executar a aplicação e passar um nome como argumento.

    commands
    # Executar a aplicação com argumento
    racket main.rkt 'SeuNome'

  7. Testes Automatizados com Racket

    Instale a biblioteca `rackunit` para facilitar a criação de testes. Para isso, adicione a seguinte linha ao seu código no início do `main.rkt` para importar o módulo de testes.

    main.rkt
    (require rackunit)
    
    #lang racket
    
    ... (restante do código permanece o mesmo)

  8. Criando Testes para sua Função de Saudação

    Crie um novo arquivo chamado `test-main.rkt` no mesmo diretório e adicione o seguinte código de teste para validar a função `saudacao`.

    test-main.rkt
    #lang racket
    (require rackunit)
    (require 'main)
    
    (check-equal? (saudacao "Carlos") "Olá, Carlos! Bem-vindo ao Racket CLI!
    ")

  9. Executando os Testes

    Para rodar os testes que você criou, execute o seguinte comando no terminal, apontando para o arquivo de teste.

    commands
    # Executar os testes
    racket test-main.rkt

Conclusão

Neste tutorial, você aprendeu a desenvolver uma aplicação de linha de comando simples em Racket, explorando desde a configuração do ambiente até a implementação de testes automatizados. Através dos passos apresentáveis, você pode estender suas habilidades em Racket, testando e implementando novas funcionalidades. Hoje, você possui as ferramentas e o conhecimento para criar aplicações robustas com Racket e realizar testes para garantir a qualidade do seu código. Continue explorando e expandindo suas habilidades nesta linguagem versátil!

Hashtags

#Racket #CLI #TestesAutomatizados #ProgramaçãoFuncional #DesenvolvimentoDeSoftware