quarta-feira, dezembro 23, 2009

Domain Driven Design com Naked Objects em Java - Resenha do Livro

Um livro recém lançado e que acabei de ler é o Domain Driven Design Using Naked Objects de Dan Haywood.

Muitos acham que Naked Objects é uma tecnologia meramente para aprendizado ou prototipação de conceitos. Podia até ser antigamente, mas esse livro mostra que essa visão está errada hoje. Além dos usos conhecidos de ensinar OO como deve ser e ajudar a prototipar entidades de negócio, hoje Naked Objects pode ser uma excelente forma de construir uma camada de objetos de negócio reutilizáveis dentro de uma corporação.

O livro mostra como aplicar os conceitos de Domain Driven Design e de Ubiquitous Language utilizando Java e Naked Objects. Além de mostrar detalhadamente como construir a camada de entidades de negócio usando Naked Objects, o livro mostra como você pode:

- Integrá-los com bancos de dados
- Integrá-los com uma estratégia SOA expondo-os a um ESB ou como um RESTful Service
- Usá-los a partir de um framework Web (o livro usa como exemplo o Apache Wicket)
- Como usá-los através de clientes GUI
- E também como usar a infraestrutura da própria tecnologia Naked Objects, que gera uma interface gráfica Web automaticamente para uso das entidades de negócio.

Recomendo esse livro para os que querem aprender com mais rapidez e facilidade o que é o Domain Driven Design - DDD - na prática. Também para aqueles que desejam construir aplicações Web e Client/Server de uma forma veloz e que serão usadas internamente em produção dentro de uma organização.

segunda-feira, dezembro 21, 2009

Departamento de Defesa dos EUA indo para o Agile - Ideias para os compradores de TI do governo brasileiro

Encontrei uma notícia muito interessante e relevante para o mercado de TI do setor público brasileiro. O Departamento de Defesa dos Estados Unidos está indo rumo ao Agile e ao iterativo!

O apresentador Don Johnson, que trabalha para o CIO do departamento de defesa, apresentou os pontos que mostram que a forma de contratação waterfall (cascata) de software por parte do DoD "é a causa raiz para os sistemas adquiridos sob medida não entregarem as capacidades e benefícios prometidos, dentro do prazo e orçamento". Ele explicou que a aquisição atual envolve um ciclo de tempo muito longo dirigido por processos big bang.

Por causa disso, o Congresso Americano respondeu e criou uma lei que permitirá a construção de 10 programas de TI usando um modelo alternativo de aquisição!

Isto é, o governo americano está trabalhando em uma lei para reformar a aquisição ultrapassada baseada em processos cascata, rumando para um modelo iterativo e incremental.

Esse exemplo, vindo do departamento onde "nasceu" o modelo cascata, é mais um indício de que esse debate também precisa entrar no tema de aquisição de software sob medida no governo brasileiro, em órgãos públicos e empresas estatais. O governo americano já está dando um passo inicial para reformular TODAS as compras públicas de software. Quando o Brasil tomará esse mesmo caminho? Espero que seja breve. Só assim teremos melhores sistemas a custos mais baixos, com melhor qualidade e agilidade.

quarta-feira, dezembro 09, 2009

Selenium RC (Remote Control) - Instalação, Configuração e Dicas

Hoje um artigo mais técnico para quebrar o ritmo do assunto gestão de portfólio de projetos! Vou tratar da instalação e configuração da ferramenta Selenium Remote Control (RC). O Selenium RC permite que scripts de teste desenvolvidos usando a ferramenta Selenium IDE, no browser Firefox, possam ser executados em outros browsers (como Internet Explorer, Safári e Opera). Portanto, assumimos que você já tenha criado os scripts de teste na ferramenta Selenium IDE. Mostro alguns exemplos da execução do Selenium RC com os browsers Firefox e Internet Explorer.

Como pré-requisito, não esqueça de instalar o JDK (Java Development Kit).

Para a instalação você deve:

  • Fazer o unzip do conteúdo do arquivo no diretório C:\Selenium.
Para utilizar o Selenium RC no Windows faça o seguinte:
  • Abrir um Prompt do DOS.
  • Entrar no diretório C:\Selenium\selenium-server-1.0.1
  • Digitar o seguinte comando para executar os testes com o browser Internet Explorer: java -jar selenium-server.jar -multiwindow -htmlSuite "*iexplore" "http://www.google.com" "C:\Selenium_Tests\TsTst.html" "C:\Selenium_Tests\results.html" . Não esqueça de substituir o que está entre aspas pelos seus valores específicos.
  • Digitar o seguinte comando para executar os testes com o browser Firefox: java -jar selenium-server.jar -multiwindow -htmlSuite "*chrome" "http://www.google.com" "C:\Selenium_Tests\TsTst.html" "C:\Selenium_Tests\results.html" . Não esqueça de substituir o que está entre aspas pelos seus valores específicos.
  • O arquivo results.html conterá o resultado de execução de cada um dos casos de teste. Através dele é possível verificar se algum caso de teste falhou e em que ponto.

Dicas fundamentais:

  • Criar os casos de teste e a suíte de testes sempre com a extensão .html. Sem essa extensão os casos de teste podem falhar em alguns browsers quando o Selenium RC é utilizado (Acredite em mim... perdi um bom tempo tentando identificar esse problema!!!).
  • Criar o arquivo de resultados contendo o nome do browser. Exemplo: FFResults.html e IEResults.html.
Algumas telas do uso do Selenium RC:






Veja as Estatísticas