laborat³rio java com testes, jsf e design patterns

Download Laborat³rio Java com Testes, JSF e Design Patterns

Post on 01-Jan-2016

53 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Cursos Caelum

  • 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

  • Conhea alguns de nossos cursos

    FJ-11: Java e Orientao a objetos

    FJ-26: Laboratrio Web com JSF2 e CDI

    FJ-16: Laboratrio Java com Testes, XML e Design Patterns

    FJ-19: Preparatrio para Certificao de Programador Java

    FJ-21: Java para Desenvolvimento Web

    FJ-31: Java EE avanado e Web Services

    FJ-91: Arquitetura e Design de Projetos Java

    RR-71:Desenvolvimento gil para Web 2.0 com Ruby on Rails

    RR-75:Ruby e Rails avanados: lidando com problemas do dia a dia

    Mais de 8000 alunos treinados; Reconhecida nacionalmente; Contedos atualizados para o mercado e para sua carreira; Aulas com metodologia e didtica cuidadosamente preparadas; Ativa participao nas comunidades Java, Rails e Scrum; Salas de aula bem equipadas; Instrutores qualificados e experientes; Apostilas disponveis no site.

    Para mais informaes e outros cursos, visite: caelum.com.br/cursos

    FJ-25: Persistncia com JPA2 e Hibernate

  • 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.10 Resumo dirio das Negociaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.11 Exerccios: fbrica de Candlestick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.12 Exerccios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3 Testes Automatizados 303.1 Nosso cdigo est funcionando corretamente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 Exerccios: testando nosso modelo sem frameworks . . . . . . . . . . . . . . . . . . . . . . . . . 303.3 Denindo melhor o sistema e descobrindo mais bugs . . . . . . . . . . . . . . . . . . . . . . . . 333.4 Testes de Unidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.5 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.6 Anotaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.7 JUnit4, convenes e anotao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.8 Exerccios: migrando os testes do main para JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . 383.9 Vale a pena testar classes de modelo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.10 Exerccios: novos testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.11 Para saber mais: Import Esttico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.12 Mais exerccios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.13 Discusso em aula: testes so importantes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    4 Trabalhando com XML 514.1 Os dados da bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2 O formato XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.3 Lendo XML com Java de maneira difcil, o SAX . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    i

  • 4.4 XStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.5 Exerccios: Lendo o XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.6 Discusso em aula: Onde usar XML e o abuso do mesmo . . . . . . . . . . . . . . . . . . . . . . 62

    5 Test Driven Design - TDD 635.1 Separando as candles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.2 Vantagens do TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.3 Exerccios: Identicando negociaes do mesmo dia . . . . . . . . . . . . . . . . . . . . . . . . 655.4 Exerccios: Separando os candles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.5 Exerccios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    6 Acessando umWeb Service 726.1 Integrao entre sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.2 Consumindo dados de umWeb Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.3 Criando o cliente Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.4 Exerccios: Nosso cliente Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.5 Discusso em aula: Como testar o cliente do web service? . . . . . . . . . . . . . . . . . . . . . 77

    7 Introduo ao JSF e Primefaces 787.1 Interfaces grcas para o usurio - GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787.2 O cliente gordo e o desenvolvimento Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.3 O desenvolvimento Web e o protocolo HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.4 Mesclar desenvolvimento Desktop e Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817.5 Especicao e implementao do JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817.6 Introduo ao JSF comMojarra e PrimeFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827.7 Preparao do ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.8 Exerccios: Instalando o Tomcat e criando o projeto . . . . . . . . . . . . . . . . . . . . . . . . . 867.9 A primeira pgina com JSF 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947.10 Exerccios: Os primeiros componentes JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967.11 Listagem de Negociaes com Primefaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987.12 Cdigo atrs da tela - Managed Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997.13 Formatao de Data com JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017.14 Paginao e Ordenao das negociaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027.15 Exerccios: p:dataTable para listar as Negociaes do Web Service . . . . . . . . . . . . . . . . . 1037.16 O Padro Model View Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    8 Refatorao: os Indicadores da bolsa 1088.1 Anlise Tcnica da bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088.2 Indicadores Tcnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098.3 As mdias mveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108.4 Exerccios: criando indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138.5 Refatorao . . . . . . . . . . . .