Jheat
-
Upload
mario-marroquim -
Category
Technology
-
view
1.931 -
download
1
description
Transcript of Jheat
Jheat: gerador de aplicaçõesJheat: gerador de aplicações
Mário Sérgio Coelho Marroquim
[email protected]: Erick Baptista Passos
ConteúdoConteúdo
Introdução Conceitos básicos Motivação Geração de aplicações O JHeat Exemplos Conclusões
IntroduçãoIntrodução
O que é o JHeat? Framework para geração de
aplicações web em Java
Por quê perder tempo fazendo um gerador em vez de criar logo a aplicação final?
IntroduçãoIntrodução
Desenvolvimento para web em Java JEE: Java Enterprise Edition Utilização de padrões de projeto como o
MVC (Model-View-Controller) Uso de frameworks para diversas
atividades Algumas configurações em arquivos XML
e properties
Conceitos básicosConceitos básicos
Padrão MVC Model (Modelo): lógica de negócio View (Visão): apresentação, interface
gráfica Controller (Controlador): controle de
acesso, validações, controle de fluxo de páginas
Conceitos básicosConceitos básicos
ViewProvê a visualização do modeloEnvia as requisições do usuário
para o ControllerComposto de Páginas JSP,
arquivos CSS, JavaScript, etc
ViewProvê a visualização do modeloEnvia as requisições do usuário
para o ControllerComposto de Páginas JSP,
arquivos CSS, JavaScript, etc
ControllerDefine o comportamento da
aplicaçãoProcessa e valida as requisições
do usuário
ControllerDefine o comportamento da
aplicaçãoProcessa e valida as requisições
do usuário
ModelContém a lógica de negócio e
controla a conexão com o banco de dados
ModelContém a lógica de negócio e
controla a conexão com o banco de dados
Conceitos básicosConceitos básicos
Frameworks e componentes Realizam tarefas mais complexas Criam uma camada de abstração que
facilita o desenvolvimento Representam componentes que podem
ser utilizados ou não, de acordo com os requisitos
Conceitos básicosConceitos básicos
HibernateToplinkSpring
HibernateToplinkSpring
MODELO
DisplayTagsCewolf Tags
DojoDWR
AjaxTagsJSF
DisplayTagsCewolf Tags
DojoDWR
AjaxTagsJSF
VISÃO
Struts 1WebworkStruts 2
Spring MVCVRaptor
Struts 1WebworkStruts 2
Spring MVCVRaptor
CONTROLE
Frameworks e componentes Distribuição entre as camadas do MVC
MotivaçãoMotivação
A arquitetura MVC é boa Os frameworks fazem o “serviço sujo” Qual é o problema?
Muito código é repetido a cada novo projeto
Esse código geralmente envolve: Requisitos não funcionais Configurações de cada framework
Quanto mais repetição, mais falhas
MotivaçãoMotivação
Solução? O código “burocrático” pode ser gerado
automaticamente de alguma forma
Geração de aplicaçõesGeração de aplicações
Evita código repetido Customizável através de templates Pode ser:
Estática Dinâmica
Geração de aplicaçõesGeração de aplicações
Estado atual MDA
Uso de modelos similares a UML Gera, na maioria das vezes, apenas a
camada de modelo Ex.: Constructor, iQGen
Geração de aplicaçõesGeração de aplicações
Estado atual AndroMDA, OptimalJ, OpenXava, Jsenna
Geram a aplicação toda É difícil customizar a aplicação gerada Geram apenas os cadastros básicos, CRUD Geração estática
Geração de aplicaçõesGeração de aplicações
Estado atual Ruby-on-rails, Streamlined
Geram partes da aplicação Utilizam convenções facilidade na customização da aplicação
gerada Geram apenas o CRUD Geração dinâmica
Geração de aplicaçõesGeração de aplicações
Problemas Pouca customização Pouca funcionalidade gerada Aumento da produtividade apenas no
início do projeto
O JHeatO JHeat
Não gera toda a aplicação Totalmente baseado em templates Gera o CRUD Gera fluxos complexos Gera listagens customizadas e
relatórios simples O desenvolvedor faz a camada de
modelo e pode incluir todas as funcionalidades que quiser
O JHeatO JHeat
Ciclo de desenvolvimento
Configurações das funcionalidades em
XML
Configurações das funcionalidades em
XML
Aplicação finalAplicação final
Programação na camada de modeloProgramação na
camada de modelo
O JHeatO JHeat
Ciclo de desenvolvimento Geração incremental
Filosofia: nunca alterar o código gerado Produtividade constante Prototipação rápida Sem repetições Camada de modelo facilmente testável Alta abstração das tecnologias
ExemplosExemplos
ExemplosExemplos
ExemplosExemplos
ConclusõesConclusões
O JHeat não é um gerador fullstack Gera apenas as camadas de controle e
visão. O modelo fica a cargo do desenvolvedor
Deveria utilizar mais conveções em vez de configurações em XML
O uso de templates JSP permite redefinições do layout padrão
ConclusõesConclusões
Utilizado a mais de 1 ano em projetos como o IAPEP Saúde, Proteção, etc.
A ferramenta aproveita a potencialidade e a estabilidade de frameworks consolidados em Java como Hibernate, DisplayTags, Ajax Tags, etc.
ConclusõesConclusões
Pode não ser ideal em alguns casos, mas prova que a geração de código pode elevar os níveis de produtividade e qualidade a patamares muito mais altos