Introdução
Neste tutorial, vamos explorar a construção de uma aplicação web completa utilizando PureScript, um lenguaje funcional que compila para JavaScript. Abordaremos as principais bibliotecas como Halogen, um framework para criação de interfaces web, e purescript-react, que permite trabalhar com componentes de forma declarativa. Iremos passar por todas as etapas do desenvolvimento, desde a configuração inicial do projeto até a implementação de testes automatizados, utilizando Purescript-test. Este guia é ideal para desenvolvedores que desejam entender como criar aplicações modernas e testáveis usando a linguagem PureScript, aproveitando as vantagens da programação funcional.
Etapas
Configuração do Ambiente de Desenvolvimento
Certifique-se de ter o GHC (Glasgow Haskell Compiler) e o Stack instalados em sua máquina. O Stack é uma ferramenta para gerenciar projetos Haskell e PureScript. Verifique as versões instaladas com os comandos `ghc –version` e `stack –version`. Se não os tiver instalados, siga as instruções no site oficial do Haskell.
commands# Verificar versões instaladas
ghc --version
stack --versionIniciando um Novo Projeto PureScript
Utilize Stack para criar um novo projeto PureScript. Execute o comando a seguir que irá gerar uma estrutura básica de projeto com as dependências necessárias.
commands# Criar um novo projeto PureScript
stack new my-purescript-app purescriptAdicionando Dependências
Navegue até o diretório do seu projeto e adicione as dependências Halogen e purescript-react. Isso pode ser feito editando o arquivo `packages.dhall` ou usando Stack.
commands# Navegar até o diretório do projeto
cd my-purescript-app
# Adicionar dependências
stack add purescript-halogen purescript-reactCriando a Estrutura da Aplicação
Crie um arquivo `Main.purs` na pasta `src`. Este será o ponto de entrada da sua aplicação. Aqui, vamos configurar uma aplicação simple usando Halogen.
Main.pursmodule Main where import Prelude import Halogen as H import Halogen.HTML as HH import Halogen.HTML.Events as HE main :: Effect Unit main = do body <-HH.mkElement H.runUI app body app :: H.Component HH.HTML HH.HTML app = H.mkComponent { initialState: const unit , render: \_ -> HH.div_ [HH.button [HE.onClick \_ -> log "Button clicked!"] [HH.text "Click me!"]] , eval: H.defaultEval }
Configurando os Testes Automatizados
Crie uma nova pasta chamada `test` no diretório do seu projeto. Dentro dela, crie um arquivo chamado `MainSpec.purs` para implementar os testes unitários da sua aplicação.
MainSpec.pursmodule MainSpec where import Prelude import Test.By import Test.Hspec spec :: Spec spec = do describe "App Tests" do it "should render the app correctly" do -- Simulação de renderização e testes de comportamentos assert true -- Simulação básica
Executando a Aplicação
Use o Stack para compilar e executar a aplicação. Após a execução, abra o navegador e acesse `http://localhost:8080` para visualizar sua aplicação web.
commands# Compilar e executar a aplicação
stack run
# Verificar testes automatizados
stack test
Conclusão
Neste tutorial, você aprendeu a construir uma aplicação web completa usando PureScript, com destaque para o uso do Halogen e purescript-react. Abordamos desde a configuração do ambiente de desenvolvimento até a implementação de testes automatizados, garantindo que sua aplicação seja robusta e confiável. Com essa base, você poderá explorar ainda mais o ecossistema PureScript e desenvolver aplicações mais complexas. Sinta-se à vontade para experimentar mais e potencializar suas habilidades em programação funcional.