Introdução
Neste tutorial, mergulharemos na rica experiência de integração do Smalltalk com ambientes de desenvolvimento ágil utilizando o framework Pharo. O Pharo é um ambiente de desenvolvimento altamente produtivo que permite a rápida prototipagem e o desenvolvimento colaborativo de software. Neste artigo, vamos explorar como utilizar o Pharo para integrar ferramentas modernas de desenvolvimento ágil, permitindo que as equipes trabalhem de forma mais eficaz e produtiva. Abordaremos a configuração do ambiente, a criação de uma aplicação simples, a implementação de funcionalidades e como testar nosso código. Este é um guia ideal para desenvolvedores e equipes que desejam revitalizar processos de desenvolvimento e colaboração.
Etapas
Configuração do Ambiente Pharo
Primeiro, vamos instalar o Pharo em sua máquina. Acesse a página oficial do Pharo e baixe a versão mais recente. Após o download, extraia os arquivos em um diretório de sua preferência. Abra o Pharo Launcher e inicie uma nova imagem.
commands# Download do Pharo
wget http://get.pharo.org/64/70/pharo.zip
# Extraia os arquivos em um diretório
unzip pharo.zip -d ~/pharoCriando um Novo Projeto Pharo
Após abrir o Pharo, crie um novo projeto utilizando o ambiente de desenvolvimento. Clique em ‘World’, selecione ‘New’ e depois ‘Project’. Dê um nome adequado ao seu projeto, como ‘AgilePrototyping’.
Instalando Ferramentas de Desenvolvimento Ágil
Instale a biblioteca Roassal para visualização de dados e a biblioteca Glorp para interação com bancos de dados. No ambiente Pharo, use o seguinte script para carregar as bibliotecas:
scriptMetacello new baseline: 'Roassal'; repository: 'github://svenvc/roassal2'; load. Metacello new baseline: 'Glorp'; repository: 'github://pharo-contributions/glorp'; load.
Criando uma Classe de Produto
Crie uma nova classe chamada `Produto`. Esta classe terá atributos como nome e preço. No playground do Pharo, insira o seguinte código para definir a classe:
Produto.classObject subclass: #Produto instanceVariableNames: 'nome preco' Produto >> nome: aNome nome := aNome. Produto >> preco: umPreco preco := umPreco. Produto >> nome ^ nome. Produto >> preco ^ preco.
Implementando Métodos de CRUD
Vamos implementar métodos básicos para criar, ler, atualizar e deletar produtos. Primeiro, crie um repositório simples utilizando uma coleção para armazenar os produtos.
ProdutoRepository.classObject subclass: #ProdutoRepository instanceVariableNames: 'produtos' ProdutoRepository >> initialize produtos := OrderedCollection new. ProdutoRepository >> add: umProduto produtos add: umProduto. ProdutoRepository >> all ^ produtos. ProdutoRepository >> update: umProduto |existing| existing := produtos detect: [:p | p nome = umProduto nome] ifNone: [^nil]. existing preco: umProduto preco. ProdutoRepository >> remove: umNome produtos remove: (produtos detect: [:p | p nome = umNome] ifNone: [nil]).
Testando a Implementação com SUnit
Utilize o SUnit para criar testes que validem o funcionamento de seus métodos de CRUD. Crie uma classe de testes chamada `ProdutoRepositoryTest` e defina os testes em seguida.
ProdutoRepositoryTest.classTestCase subclass: #ProdutoRepositoryTest ProdutoRepositoryTest >> testAddAndRetrieve |repo produto| repo := ProdutoRepository new. produto := Produto new. produto nome: 'Produto Teste'; preco: 10.0. repo add: produto. self assert: (repo all size = 1). self assert: ((repo all first) nome = 'Produto Teste').
Executando os Testes
Após definir a classe de testes, execute os testes utilizando o navegador SUnit. Você pode acessar o SUnit através do menu do Pharo e executar a classe `ProdutoRepositoryTest`.
Iterando sobre Feedback e Refatoração
Após os testes, itere sobre o feedback e faça as refatorações necessárias no código. O Pharo permite que você modifique o código em tempo real, o que é essencial para o desenvolvimento ágil.
Conclusão
Neste tutorial, exploramos a integração do Smalltalk com ferramentas modernas de desenvolvimento ágil por meio do framework Pharo. Aprendemos como configurar o ambiente, criar um projeto, implementar uma classe simples, desenvolver métodos de CRUD e testar nossa aplicação. O Pharo, com sua natureza interativa e dinâmica, possibilita uma rápida prototipagem e colaboração efetiva entre equipes, fazendo dele uma escolha excelente para desenvolvimento ágil. Agora você está equipado com o conhecimento para começar a implementar suas próprias soluções utilizando Smalltalk e Pharo.