Introdução
Pharo é uma linguagem de programação orientada a objetos que tem ganhado destaque devido à sua simplicidade e eficiência na criação de aplicações. Neste tutorial, vamos explorar como usar Pharo para o desenvolvimento ágil, ressaltando suas bibliotecas e práticas colaborativas. A abordagem ágil é ideal para equipes que desejam se adaptar rapidamente às mudanças, e Pharo, com sua interface intuitiva e ambiente dinâmico, facilita esse processo. Ao longo deste artigo, você aprenderá a configurar seu ambiente, utilizar bibliotecas relevantes e adotar metodologias ágeis para otimizar seu fluxo de trabalho. Prepare-se para mergulhar no mundo do desenvolvimento rápido e colaborativo com Pharo.
Etapas
Configuração do Ambiente Pharo
Primeiro, você precisará instalar o Pharo em sua máquina. Visite o site oficial do Pharo e faça o download da versão mais recente. O ambiente de desenvolvimento do Pharo inclui uma imagem e um VM (Virtual Machine). Após o download, extraia os arquivos e inicie a imagem do Pharo.
commands# Iniciar a imagem do Pharo
open Pharo.imageCriando um Novo Projeto
Uma vez que o Pharo estiver funcionando, você pode criar um novo projeto usando a ferramenta de gerenciamento de pacote Metacello. Abra o Playground e execute o seguinte código para definir um novo pacote chamado `MeuProjeto`.
commandsMetacello new
baseline: 'MeuProjeto';
repository: 'github://usuario/repo:master';
load.Adicionando Bibliotecas Úteis
Para o desenvolvimento ágil, você pode querer agregar bibliotecas que suportem práticas colaborativas. Uma biblioteca popular é a `Specification` para testes. Utilize o seguinte comando para integrá-la ao seu projeto.
commandsMetacello new
baseline: 'Specification';
repository: 'github://pharo-spec/specification';
load.Modelo de Dados: Criando a Classe ‘Produto’
Agora, vamos criar uma classe simples chamada `Produto`. No Playground, execute o seguinte código para definir a classe e seus atributos.
commandsObject subclass: #Produto
instanceVariableNames: 'nome preco'
classVariableNames: ''
package: 'MeuProjeto'Implementando a Lógica de Negócio
Para a classe `Produto`, implemente métodos para manipular as informações. Adicione métodos para definir e obter os atributos `nome` e `preco`.
commandsProduto >> nome: aNome [nome := aNome. ]
Produto >> preco: umPreco [preco := umPreco. ]
Produto >> nome [^ nome]
Produto >> preco [^ preco]Teste da Classe ‘Produto’
Utilize a biblioteca `Specification` para implementar testes na classe `Produto`. Crie um novo arquivo de teste e adicione o seguinte código.
commandsTestCase subclass: #ProdutoTest
instanceVariableNames: ''
classVariableNames: ''
package: 'MeuProjeto-Test'
ProdutoTest >> testNomePreco [
| produto |
produto := Produto new.
produto nome: 'Teste'; preco: 25.0.
self assert: produto nome = 'Teste'.
self assert: produto preco = 25.0.
]Executando os Testes
Você pode rodar os testes da sua classe `ProdutoTest` diretamente do ambiente do Pharo. Execute o seguinte comando no Playground para iniciar os testes.
commandsProdutoTest new runTests.
Documentação e Colaboração
Em um ambiente colaborativo, documentar seu código é fundamental. Experimente adicionar comentários nas suas classes e use ferramentas como `FileList` para organizar e gerenciar seus arquivos.
commandsFileList new file: 'src/MeuProjeto/Produto.st'
# Comentários são valiosos para sua equipe.Compartilhamento do Projeto
Finalmente, compartilhe seu projeto utilizando um sistema de controle de versão como Git. Configure um repositório remoto e faça o push de suas alterações.
commands# Inicializando um repositório Git
git init
git add .
git commit -m 'inicializando o projeto'
git remote add origin https://github.com/usuario/repo.git
git push -u origin master
Conclusão
Neste tutorial, exploramos como utilizar o Pharo para desenvolvimento ágil, desde a configuração do ambiente até a implementação de uma lógica simples de negócios e testes unitários. Pharo, com suas ricas bibliotecas e comunidade ativa, se prova uma ferramenta poderosa para colaboração em equipe e melhoria contínua. Através de práticas ágeis, como compartilhamento de código e documentações úteis, seu fluxo de trabalho e produtividade podem aumentar exponencialmente.