Introdução
Neste tutorial, vamos explorar a linguagem de programação Crystal, conhecida por sua sintaxe simples e desempenho eficiente, que se assemelha ao Ruby. Vamos nos aprofundar nos principais frameworks e ferramentas que tornam o desenvolvimento em Crystal ágil e poderoso. Em particular, abordaremos frameworks como Amber e Lucky, que facilitam a criação de aplicações web robustas. A intenção é fornecer uma visão abrangente das funcionalidades da linguagem, das bibliotecas mais utilizadas e, ao longo do nosso guia, fornecer exemplos práticos que o ajudarão a começar suas próprias aplicações em Crystal. Se você está buscando alternativas ao mundo de desenvolvimento baseado em Java ou outras linguagens, este tutorial é perfeito para você. Por meio de uma abordagem hands-on, abordaremos desde a instalação do ambiente até a construção e o teste de um aplicativo web simples, que utiliza as melhores práticas recomendadas para fazer do seu desenvolvimento uma experiência agradável e produtiva.
Etapas
Instalação do Ambiente de Desenvolvimento
A primeira etapa é instalar a linguagem Crystal em sua máquina. Você pode encontrar instruções específicas no site oficial do Crystal. Para sistemas baseados em Unix, você pode usar o gerenciador de pacotes Homebrew (para macOS) ou outras ferramentas semelhantes para sua distribuição Linux.
commands# Instalar utilizando Homebrew no macOS
brew install crystal
# Ou utilizando o script de instalação no Linux
curl -sSL https://get.crystal-lang.org/sh | shCriação de um Novo Projeto com Amber
Agora, vamos criar um novo projeto utilizando o Amber, que é um dos frameworks mais populares para desenvolvimento web em Crystal. Use o comando a seguir para gerar um novo projeto Amber, substituindo ‘meu_projeto’ pelo nome desejado.
commands# Instalar o Amber CLI
curl -O https://raw.githubusercontent.com/amberframework/amber/master/tools/install.sh
bash install.sh
# Criar um novo projeto Amber
amber new meu_projeto
# Acesse a pasta do projeto
cd meu_projetoEstrutura do Projeto Amber
Após a criação do projeto, você verá a estrutura de diretórios padrão criada pelo Amber. Explore as pastas como ‘src’, ‘config’ e ‘public’ para entender como o Amber organiza seu código. Cada um desses diretórios desempenha um papel crucial no funcionamento da aplicação.
textA estrutura do projeto deve incluir diretórios como: - src: onde o código fonte da aplicação vive. - config: onde estão os arquivos de configuração da aplicação. - public: onde os arquivos estáticos, como JavaScript e CSS, são armazenados.
Implementação de um Modelo de Dados
Vamos criar um modelo de dados simples chamado ‘Produto’. Para isso, crie um arquivo chamado `produto.cr` na pasta src e defina a estrutura da nossa entidade.
produto.crclass Produto @[id: Int32] @[field: String] @[price: Float64] def initialize(@id : Int32, @field : String, @price : Float64) end end
Criando um Controlador
Agora, vamos criar um controlador para gerenciar os produtos. Crie um arquivo chamado `produtos_controller.cr` na pasta src/controllers e implemente as ações de CRUD básicas.
produtos_controller.crclass ProdutosController < Amber::Controller action index do render :index end action new do render :new end action create do produto = Produto.new(params[:id], params[:field], params[:price]) # Lógica para salvar produto redirect_to "/produtos" end end
Configuração de Rotas
Configure as rotas da sua aplicação no arquivo `routes.cr` para garantir que os caminhos corretos sejam mapeados para as ações dos controladores que você criou.
routes.crAmber::Routing::Router.draw do get "/produtos", to: ProdutosController.index get "/produtos/new", to: ProdutosController.new post "/produtos", to: ProdutosController.create end
Executando a Aplicação
Após implementar todos os componentes necessários, você pode iniciar sua aplicação utilizando o Amber CLI. Isso iniciará o servidor local para que você possa testar as funcionalidades da aplicação no seu navegador.
commands# Iniciar a aplicação Amber
amber run
# Abra o navegador e acessa a aplicação em
http://localhost:3000/produtosImplementação de Testes
Para garantir que sua aplicação funcione conforme o esperado, é importante escrever testes. O Amber possui uma estrutura de testes embutida que você pode usar. Crie um arquivo de teste chamado `produtos_controller_spec.cr` em `spec/controllers`.
produtos_controller_spec.crrequire "spec_helper" describe ProdutosController do describe "GET /produtos" do it "deve retornar um status 200" do get "/produtos" expect(response.status).to eq(200) end end end
Executando os Testes
Finalmente, você pode executar seus testes para garantir que tudo está funcionando corretamente. Isso pode ser feito com o comando Amber, que incluirá o executamento dos testes definidos.
commands# Executar os testes
amber spec
Conclusão
Neste tutorial, exploramos como usar a linguagem Crystal e o framework Amber para criar uma aplicação web simples, desde a configuração do ambiente até a implementação e teste de funcionalidades. Vimos como cada componente interagiu para formar uma aplicação robusta e rápida. Esperamos que ao final deste tutorial, você tenha adquirido conhecimento suficiente para começar a desenvolver suas próprias aplicações com Crystal. Sinta-se à vontade para explorar mais sobre o Amber e outros frameworks como Lucky para ampliar suas habilidades nesta linguagem inovadora.