Inovando na Plataforma Java

Post on 13-Jan-2015

566 views 0 download

description

INFORUSO / INOVATEC 2010

Transcript of Inovando na Plataforma Java

Inovando na Plataforma Java

Eteg Tecnologia da Informação

Palestrante

• Wanderson Santos (@wanswins)– Arquiteto Corporativo– Líder Técnico / Desenvolvedor– Instrutor Tecnológico

O que é inovação?

“Idéias novas ou melhoradas, de produtos, serviços ou processos

...aplicadas ao mercado...

...que aumentam a eficiência do processo produtivo...

...ou que geram novo ou aprimorado produto.

O que é plataforma?

Plataforma...

Elevação

SustentaçãoSegurança

EstruturaPadrão

Confiança

A plataforma tecnológica é o conjunto que sustenta um software

A plataforma tecnológica provê os elementos básicos para criação, execução e manutenção

de um software

Qual sua plataforma?VB?

Win32?.NET?

PowerBuilder?PHP?

Python?

Java?

ASP?

Ruby?

Delphi?

Database? ColdFusion?

A plataforma Java é o conjunto que sustenta um software Java

A plataforma Java é a máquina virtual + bibliotecas básicas

O que seria do Java sem o tipo inteiro?

A plataforma Java = JVM + JARs essenciais

Voltamos a sopa de letrinhas!

Porque inovar em Java?

Manter os ativos (bibliotecas, utilitários, etc.)

Vamos converter nossas bibliotecas para Java/.NET!

Manter o conhecimento

Vamos aprender como gerar um relatório em Ruby!

Menor esforço para treinamento do time

Vamos reaprender toda uma plataforma!

Bibliotecas e PadrõesQuartz?

Servlets? Session Beans?

JPA?

Hibernate?

Commons?Jasper?

Tomcat?

iText?

JMS?

JAX-WS?

Java Mail?

Spring Security?

Que tal manter todas elas?

Próximo slide por favor!

Linguagem

Pascal?

VB? Cobol?

C#?

Latim?

XML?UML?

Java?

Groovy?

Ruby?Python?

F#?

C++?

Scala?

#FAIL? rs

Linguagem faz parte da plataforma?

Tempooooooooooooo...

Sim, a linguagem Java faz parte da plataforma Java

(Você gosta da linguagem Java?)

Mas, a linguagem Java é somente uma das partes da plataforma Java!

Vivaaaaaaaaaaaaaa!!!

Linguagens na JVM

• Groovy (JSR-241)• Scala• JRuby• Fantom • ColdFusion• Jython (Python)• Rhino (JavaScript) – já integrada ao Java 6

Linguagens dinâmicas

• É a tendência atual do mercado• O resultado do código é instantâneo sem

necessidade do ciclo compilação/implantação• É possível carregar um novo código em tempo

de execução, sem necessidade de compilação, contrato de interface, etc.– Cenários: regras de negócio, camada de visão, etc.

Porque usar outra linguagem?

• Mais produtivas– Menos verbosas que Java– Injetam métodos de apoio nas bibliotecas

essenciais (Java Class Library)• [1,2,3].each { println “numero $it” }

• Mais poderosas– Métodos anônimos (você ainda vai usar um!)– Closures

Porque não usar...

• Podem ser mais lentas que linguagem Java– Para maioria dos casos não afeta– A produtividade é mais importante!– Atenda o cliente, depois otimize o código– Você pode voltar pro Java quanto precisar!

• Suporte a IDEs (algumas)– As mais consolidadas já possuem bom suporte,

inclusive para debug

Como começar?

• Sua equipe é menor e você pode treinar a equipe? – CHOOSE YOUR DESTINY – Não tenha medo, é simples!

• Sua equipe é grande e o tempo pra aprendizado é curto?– Vá de Groovy! (mesmo que o projeto já tenha

começado)

Porquê Groovy?

• Padrão da Plataforma Java (JSR-241)• Já possui um bom ecossistema• Aceita sintaxe Java em .groovy– Curva de aprendizado reduzida - você pode

aprender sob demanda!– Se não sabe em Groovy, faça em Java!

• Why Groovy? http://dzone.com/j9lQ

Entidade em Java

public class Usuario {private String nome;private Date dataNascimento;public String getNome() {

return nome; } /*..não cabe no slide! */}

Entidade em Groovy

class Usuario {String nomeDate dataNascimento

}

Mais em Produtividade em Java com Grails

Let’s Groovy!

FrameworksStruts 1?

Struts 2?WebWork?

Tapestry 5?Grails?

Wicket?

Hibernate?

EJB 3?

JSF 2?

Spring?

JSP? JSF 1?

Interface

Serviço da Aplicação

Acesso a Dados

Entidades (Domínio)

Uni-dune-tê!

Tendência: Full-stack Framework

Vamos juntar as melhores peças!

GSP

Spring

GORM (Hibernate)

GORM / JPA

grails create-app MinhaApp

4 horas em 1 minuto!

• Framework full-stack que une os frameworks Java mais utilizados (Hibernate, Spring, etc.)

• Utiliza linguagem Groovy ou Java– Todo feito em Java, mas você programa em

Groovy!• Utiliza “Programação por Convenção”– Elimina necessidade de configuração

Grails

• É mantida pela SpringSource, do grupo VMWare – Sim, a responsável pelo Spring Framework

• Extensível através de plugins– Tem plugin pra TUDO! Baseado em bibliotecas Java

que você conhece ou vai conhecer:• Autenticação e Autorização• Acesso a bancos NOSQL• Execução em Background• Relatórios e muito mais...

Como utilizar Grails?

• Baixar o pacote mais recente em www.grails.org• Descompactar em um pasta e adicionar $GRAILS_HOME no PATH

• Criar a aplicação: grails create-app minhaApp

• Adicionar entidades de Domain e Controller seguindo a convenção Eclipse, IDEA ou vi/notepad

• Rodar a aplicação localmentegrails run-app

Mas já?

Mais Grails? Acesse: Produtividade em Java com Grails

Desktop X Web

Implantação Ubíqua X Usabilidade

Tendência: Interfaces Ricas

Vamos juntar as melhores peças!

AJAX X RIA

Duas abordagens

Também é J, rs

Aprenda jQuery de forma guiada? www.visualjquery.com

Tutoriais são excelentes!

Tudo em casa!

Mais JavaFX? Acesse: Aplicações de Interface Rica na Plataforma Java

wanderson@eteg.com.br

Obrigado!

Twitter: @wanswins