Tech Thursday -Spring Roo

15
Spring Roo

description

Apresentação sobre Spring Roo - Agence 05/08/2010

Transcript of Tech Thursday -Spring Roo

Page 1: Tech Thursday -Spring Roo

Spring Roo

Page 2: Tech Thursday -Spring Roo

Spring Roo•O que é:

Ferramenta ágil para criação de aplicações Java.

•O que não é:

Não é um framework.

Page 3: Tech Thursday -Spring Roo

Spring Roo

“Roo trabalha em background e cuida das coisas com as quais você não quer

se preocupar”.

Page 4: Tech Thursday -Spring Roo

Spring Roo

•Usado apenas durante o desenvolvimento;

•100% Java; \o/

•Arquitetura extensível;

•Suporte a IDE’s.

Page 5: Tech Thursday -Spring Roo

Tecnologias•Java EE;

•Spring (mvc, ioc, security);

•JPA (Hibernate, OpenJPA etc..);

•JSP;

•Aspectos;

•Lo4j, Maven, Eclipse ...

Page 6: Tech Thursday -Spring Roo

AOP – Quê isso??•Programação Orientada a Aspectos ou

POA;

•Um paradigma de programação que permite separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns);

•Criado por Gregor Kiczales, da Xerox. Eles desenvolveram o AspectJ, a primeira e mais popular linguagem AOP.

Page 7: Tech Thursday -Spring Roo

AOP – Quê isso??•Um aspecto pode alterar o

comportamento de um código pela aplicação de um comportamento adicional a um ponto de execução (join points). Um conjunto de join points é chamada de pointcut.

•AOP tem como objetivo a separação do código, permitindo que encapsule o código secundário em módulos separados do restante da aplicação.

Page 8: Tech Thursday -Spring Roo

AOP – Quê isso??• Exemplo real: “… depois que o sistema estava

feito, e bem padronizado, foi levantado alguns requisitos pelo cliente, e uma das formas mais ágeis que tivémos foi adicionar comportamento em determinados joinpoints que eram candidatos ao problema. Foi simples, fácil, entregamos para o cliente na metade do prazo, e possibilitou ainda maior controle na manutenção.Não pode é ficar enchendo de código em AOP, mas tem coisas que se tornam muito mais fáceis quando se utiliza AOP. ”

Page 9: Tech Thursday -Spring Roo

AOP – Quê isso??•Aspect-Oriented Programming (AOP)

complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure;

•Em geral a AOP é utilizada para auxiliar a OOP em tarefas que não fazem parte do dominio/regras de negócio da aplicacao. Na prática se utiliza muito AOP para geração de Logs e gerenciamento transacional.

Page 10: Tech Thursday -Spring Roo

AOP – Quê isso??

•Aprenda (bem!) OOP, depois pense em AOP.

•Esse paradigma pretendem superar algumas limitações da Programação Orientada a Objetos. Conclusão: A AOP é um complemento a POO e nunca irá substituir POO.

Page 11: Tech Thursday -Spring Roo

AOP – Quê isso??• Aspecto é um complemento adequado para implementar

áreas de dispersão (crosscutting concerns). Essas áreas estão dispersas em vários componentes.

• Decomposição: os vários concerns do sistema são identificados e classificados como comuns ou crosscutting.

• Implementação: os concerns são implementados separadamente em classes (para os concerns comuns) e aspectos (para os crosscutting concerns).

• Recomposição: o sistema é recomposto à partir dos concerns implementados segundo regras de recomposição. Esta fase é chamada de weaving.

Page 12: Tech Thursday -Spring Roo

AOPAspectJ

Pessoa_Roo_Entity.aj

Pessoa_Roo_JavaBean.aj

persist()

findAllPessoas()

getNome()

setNome()

Roo

Pessoa.java

String nome;

Compilador AspectJ

Pessoa.class

persist()findAllPessoas()

getNome()

setNome()

String nome;

escreve

escreve

escreve

Page 13: Tech Thursday -Spring Roo

Coisas legais

•Sem overhead de performance!

•Sem overhead de memória!

•Sem “rastros” no deploy;

•Testes...

Page 14: Tech Thursday -Spring Roo

Mais coisas legais

•Fácil remoção;

•Tecnologias open source;

•Em evolução;

•Fácil de usar e aprender;

•Geração de código passiva.

Page 15: Tech Thursday -Spring Roo

Finishing!