testes jsf web services design patterns fj22

Download Testes Jsf Web Services Design Patterns Fj22

Post on 26-Jan-2016

35 views

Category:

Documents

4 download

Embed Size (px)

DESCRIPTION

Este livro revela formas de trabalhar com padrões de projetos.

TRANSCRIPT

  • Conhea mais da Caelum.

    Cursos Onlinewww.caelum.com.br/online

    Blog Caelumblog.caelum.com.br

    Newsletterwww.caelum.com.br/newsletter

    Facebookwww.facebook.com/caelumbr

    Twittertwitter.com/caelum

    Casa do CdigoLivros para o programador

    www.casadocodigo.com.br

  • Sobre esta apostilaEsta apostila daCaelumvisa ensinar de umamaneira elegante, mostrando apenas o que necessrio e quando necessrio, no momento certo, poupando o leitor de assuntos que no costumam ser de seu interesse emdeterminadas fases do aprendizado.

    A Caelum espera que voc aproveite esse material. Todos os comentrios, crticas e sugestes sero muitobem-vindos.

    Essa apostila constantemente atualizada e disponibilizada no site da Caelum. Sempre consulte o site paranovas verses e, ao invs de anexar o PDF para enviar a um amigo, indique o site para que ele possa semprebaixar as ltimas verses. Voc pode conferir o cdigo de verso da apostila logo no nal do ndice.

    Baixe sempre a verso mais nova em: www.caelum.com.br/apostilas

    Esse material parte integrante do treinamento Laboratrio Java com Testes, JSF, Web Services e DesignPatterns e distribudo gratuitamente exclusivamente pelo site da Caelum. Todos os direitos so reservados Caelum. A distribuio, cpia, revenda e utilizao para ministrar treinamentos so absolutamente vedadas.Para uso comercial deste material, por favor, consulte a Caelum previamente.

    www.caelum.com.br

    1

  • Sumrio

    1 Tornando-se um desenvolvedor pragmtico 11.1 O que realmente importante? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 A importncia dos exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Tirando dvidas e referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Para onde ir depois? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2 Omodelo da bolsa de valores, datas e objetos imutveis 42.1 A bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Candlesticks: O Japo e o arroz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 O projeto Tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 O projeto Argentum: modelando o sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Trabalhando com dinheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6 Palavra chave nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.7 Imutabilidade de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.8 Trabalhando com datas: Date e Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.9 Exerccios: o modelo do Argentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.10 Resumo dirio das Negociaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.11 Exerccios: fbrica de Candlestick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.12 Exerccios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3 Testes Automatizados 313.1 Nosso cdigo est funcionando corretamente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Exerccios: testando nosso modelo sem frameworks . . . . . . . . . . . . . . . . . . . . . . . . . 313.3 Denindo melhor o sistema e descobrindo mais bugs . . . . . . . . . . . . . . . . . . . . . . . . 343.4 Testes de Unidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.5 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.6 Anotaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.7 JUnit4, convenes e anotao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.8 Exerccios: migrando os testes do main para JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . 393.9 Vale a pena testar classes de modelo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.10 Exerccios: novos testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.11 Para saber mais: Import Esttico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.12 Mais exerccios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.13 Discusso em aula: testes so importantes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    4 Trabalhando com XML 534.1 Os dados da bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2 O formato XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.3 Lendo XML com Java de maneira difcil, o SAX . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    i

  • 4.4 XStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.5 Exerccios: Lendo o XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.6 Discusso em aula: Onde usar XML e o abuso do mesmo . . . . . . . . . . . . . . . . . . . . . . 63

    5 Test Driven Design - TDD 645.1 Separando as candles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.2 Vantagens do TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.3 Exerccios: Identicando negociaes do mesmo dia . . . . . . . . . . . . . . . . . . . . . . . . 665.4 Exerccios: Separando os candles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.5 Exerccios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    6 Acessando umWeb Service 736.1 Integrao entre sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.2 Consumindo dados de umWeb Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.3 Criando o cliente Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.4 Exerccios: Nosso cliente Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.5 Discusso em aula: Como testar o cliente do web service? . . . . . . . . . . . . . . . . . . . . . 78

    7 Introduo ao JSF e Primefaces 797.1 Desenvolvimento desktop ou web? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.2 Caractersticas do JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827.3 Exerccios: Instalando o Tomcat e criando o projeto . . . . . . . . . . . . . . . . . . . . . . . . . 867.4 A primeira pgina com JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927.5 Interagindo com o modelo: Managed Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947.6 Recebendo informaes do usurio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957.7 Exerccios: Os primeiros componentes JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977.8 A lista de negociaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007.9 Formatao de Data com JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027.10 Exerccios: p:dataTable para listar as Negociaes do Web Service . . . . . . . . . . . . . . . . . 1037.11 Para saber mais: paginao e ordenao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.12 Exerccio opcional: adicione paginao e ordenao tabela . . . . . . . . . . . . . . . . . . . . 109

    8 Refatorao: os Indicadores da bolsa 1128.1 Anlise Tcnica da bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128.2 Indicadores Tcnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138.3 As mdias mveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148.4 Exerccios: criando indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168.5 Refatorao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208.6 Exerccios: Primeiras refatoraes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218.7 Refatoraes maiores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.8 Discusso em aula: quando refatorar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    9 Grcos interativos com Primefaces 126

    ii

  • 9.1 Por que usar grcos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269.2 Grcos com o Primefaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279.3 Documentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289.4 Denio do modelo do grco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299.5 Isolando a API do Primefaces: baixo acoplamento . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.6 Para saber mais: Design Patterns Factory Method e Builder . . . . . . . . . . . . . . . . . . . . 1349.7 Exerccios: Grcos com Primefaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    10 Aplicando Padres de projeto 13810.1 Nossos indicadores e o design pattern Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13810.2 Exerccios: refatorando