Archive

Posts Tagged ‘eclipse’

 Powered by Max Banner Ads 

Lançamento Oficial do Livro JEE com Frameworks

August 4th, 2011 14 comments

Comprar

ae Pessoal,

Hoje é mais um dia feliz na minha vida, e primeiramente quero agradecer à todos vocês, pela força, atenção, feedbacks que venho recebendo nesses 3 anos de blog e sem eles, acho que não estaria aqui hj fazendo este post e publicando mais este projeto. Pois, meu segundo filhão nasceu, huhuhu \o/. Lindo igual ao pai, por consequencia do destino hehe. Uma das novidades é que além do formato impresso, temos a versão e-book. A seguir fiz um overview,há um post detalhado de  pré-lançamento aqui.

Lets go…

Note: Infelizmente, tivemos um problema na linha de produção da gráfica e atrasou a publicação que estava prevista para meados de julho/2011.

Agradecimento

Antes de tudo, preciso agradecer ao melhor amigo o Edson Gonçalves. Amigo este de longas datas, o qual eu tenho grande admiração e respeito. É um dos profissionais mais completos de TI que já pude conhecer, o cara tem um conhecimento cross que é uma coisa de louco(não se limita só a parte técnica). Fora amizade que temos, onde às vezes pego o caminho errado, o verdadeiro amigo aparece e ti fala:”Falei que poderia contar comigo, o caminho  é aquele vai em frente”. Esse é o Edson um amigo de verdade.

Outra pessoa que não posso deixar de agradecer é o Daniel de Oliveria (leader-DFJUG) de uma das maiores e respeitável comunidade de Java que temos no Brasil, estou falando do DFJUG. E não poderia deixar de dar minha contribuição (para quem não sabe eu vim da comunidade Java, foi onde tudo começou e hoje retribuir o que recebi é o minimo que posso fazer), adicionado a marca  na capa do livro. Obrigado Daniel pelo seu apoio e da comunidade :) .

Overview

O livro tem como objetivo de ajudar aqueles profissionais que desejam aprender Java com Frameworks. É comum ao sairmos do “ABC do JEE” (normalmente é JSP/Servlet) sem saber qual framework estudar (Hibernate, JSF, Spring, “Struts”, VRaptor etc). Porém, há um problema que todo iniciante encontra: como aprender os frameworks e saber integrá-los em uma aplicação real? É isso que vamos ver no livro, aprender a usar os frameworks de forma prática e ver um pouco da teoria(se não gosta de teoria não se preocupe, pois veremos o suficiente para poder programar de maneira confortável). Os exemplos são variados, desde Java Application até JEE, a evolução de aprendizado no livro está no formato “baby-step” ajudando assim o leitor leigo no assunto. Uma novidade que alguns vão gostar e outros não, são os exercícios chamados de “Trabalho do dia” que tem como objetivo fazer o leitor desenvolver uma solução, porém há momentos que o leitor vai precisar fazer uma pesquisa na documentação da API, Google ou consultar outros capítulos.Porém, não avisamos isso no livro, então  o leitor terá que ter essa percepção. O motivo de ter adotado isso aos exercícios, transmitir um pouco do que vai encontrar no dia-dia como desenvolvedor in company, pois nem sempre teremos um colega do lado para dar o help que precisamos.

Público-Alvo

Programadores Java que tem como objetivo aprender de forma pratica o uso dos frameworks JEE mais requisitado no mercado.

Qual o diferencial?

Meus livros são diferentes, primeiramente pela escrita. Eu gosto muito da informalidade, de ser direto e tentar transmitir a informação da melhor maneira possível, como se eu tivesse ao lado do leitor. Nesse livro há vários diferenciais, um deles é o nosso laboratório on-line onde o leitor poderá fazer download do source, assistir uns vídeos de como colocar aplicação em um servidor de produção JEE(apoio da www.integrator.com.br), exercícios práticos etc.

Quando ler?

Assim, que terminar seus estudos, com Servlet & JSP, vc pode ler, do contrário, não faça o investimento agora e aguarde mais um pouquinho( coloque o livro na prateleira ou remova do seu carrinho de compras : ) ).

Requisitos

É preciso já ter uma certa experiência com Java, Banco de dados, saber como as aplicações JEE funcionam etc. Como o livro é focado em ensinar a usar de forma pratica os frameworks, não podemos perder tempo com toda teoria de JEE, então vamos direto ao assunto.Particularmente não gosto de livros grandes, eles ficam mais caros e o que eu quero é um preço acessível para todos, enfim até os que recebem mesada podem comprar (pelo menos a minha na época que tinha, os livros eram caros demais rs).

Desconto

Se quiser comprar o exemplar com 30% de desconto no site da Editora, basta usar o código a seguir durante a compra: V00014 e se cadastrar como associado.

Concorra Sorteio será 21/08/2011

Faça um RT da mensagem abaixo e sua inscrição, assim terá a chance de receber um exemplar na sua casa autografado(se preferir). Para sorteio usaremos o random.org e o número sorteado será o ganhador e a verificação do RT  Lembrando que para aqueles que fizeram mais de um cadastro com o mesmo e-mail, não estará concorrendo ao exemplar.

Lançamento do Livro Guia JEE c/ frameworks @RT: @camilolope #JEE #frameworks.Confira:

http://blog.camilolopes.com.br/livrojeeframeworks/

Após, o resultado entrarei em contato pelo e-mail cadastrado e o ganhador tem até 48 hrs para responder, após o envio  do e-mail.Do contrário um novo sorteio será realizado, e o ganhador anterior acabou de perder a chance de receber o livro. : )

Fazer inscrição

Você pode deixar de ganhar se não fizer isso:

  • cadastrar e não fazer o RT;

  • fazer o RT e não se cadastrar;

A qtde de RT fica por sua conta, se quiser fazer mais de RT, ficarei feliz :) .

Versão do Livro

  • Paper - R$ 47,20
  • E-book  – R$ 35,40

Eu quero comprar o meu

Onde comprar?

  • Site da Editora
  • Saraiva
  • Cultura
  • Fnac
  • Americanas.com
  • Submarino
  • e outras que eu não lembro rs

Download

Conseguir com a editora amostra de algumas páginas do livro, confiram aqui

Vou ficando por aqui e espero que tenham gostado do post.

Abracos see ya!!

Cobertura Unit Test com Eclemma

June 15th, 2011 Comments off

olá Pessoal,

Neste post vou falar de um plugin que temos para o Eclipse que permite saber quantos % de nossos testes de fato estão cobertos. É comum pensarmos que 100% dos nossos testes unitarios estao 100% cobertos apenas pq todos os testes passam. Quem aqui quando começou com test units não pensou nisso (eu confesso que achava isso). E neste post eu pretendo apresentar uma ferramenta que permite descobrir e dar um resultado no formato de relatório o quanto o seu code está coberto.

Lets go…

Iniciando

O plugin que vamos usar é chamado de Eclemma, ele pode ser baixado ou instalado via update no Eclipse. No site do fabricante há todas informações sobre o plugin, alguns tutoriais básicos e com imagens ilustrativas. Enfim, não tem erro para começar a usar.

Após, a instalação do plugin e o restart do Eclipse a única diferença que vc vai perceber na sua IDE é que teremos um novo botão para rodar os testes com Coverage, ou seja, “execute o testes com o plugin para eu ter relatorio da cobertura” seria algo mais ou menos assim que o botão abaixo faz.

 

Algumas Características:

  • permite exportar em html os relatorios;
  • suporte Junit 4
  • suporte ao ant, ou seja, vc pode gerar os relatórios a partir do ant
  • Baixa curva de aprendizado.

 

Antes de ir para o tópico a seguir certifique-se que já o plugin está instalado.

Praticando

Não irei abordar todos os recurso do plugin até pq nao tem tanta coisa assim, só ficar brincando um pouco com a ferramenta que alguns minutos dar para saber tudo que ela faz. Porém, para o post reservei um exemplo muito simples, onde o objetivo é mostrar como de fato a ferramenta trabalha e vai ti ajudar no aumento de cobertura dos seus testes unitarios. Criei um projeto que calcula a “Multa Mora” para alguma coisa.Isso pouco importa a questão é que essa classe recebe valores e através de um calculo financeiro terá que retorna um valor da multa a ser paga. O objetivo aqui não é ser um post para area de finanças, então deixaremos isso de lado, mas para vc saber criar bons testes precisa entender do negócio e calcular um juros simples é algo que bem do dia-dia. A seguir temos a nosso Java Project e o código da classe com seu devido calculo.

Classe MultaMora

publicclass MultaMora {

private BigDecimal taxaDia = new BigDecimal(0.33);

private BigDecimal taxaMaxima = new BigDecimal(20.00);

public MultaMora() {

// TODO Auto-generated constructor stub

}

public BigDecimal verificaAtraso(String dataVencimento, String dataPagamento,

BigDecimal valor) throws ParseException {

DateFormat df = new SimpleDateFormat(“dd/MM/yyy”);

Date dateVenc = df.parse(dataVencimento);

Date datePagto = df.parse(dataPagamento);

Calendar calendarVenci = Calendar.getInstance();

calendarVenci.setTime(dateVenc);

Calendar calendarPagto = Calendar.getInstance();

calendarPagto.setTime(datePagto);

long diferencaData = calendarPagto.getTimeInMillis()- calendarVenci.getTimeInMillis();

int umDia = 1000 * 60 * 60 * 24;

long diasDiferenca = diferencaData / umDia;

BigDecimal novoValor = calculaMulta(diasDiferenca,valor);

return novoValor;

// return diasDiferenca;

}

public BigDecimal calculaMulta(long diasAtrasado, BigDecimal valor) {

BigDecimal totalTaxa = taxaDia.multiply(new BigDecimal(diasAtrasado));

BigDecimal divisor = new BigDecimal(100);

double ttaxa = totalTaxa.doubleValue();

double ttaxamax = taxaMaxima.doubleValue();

if (ttaxa<=ttaxamax) {

return valor;

} else {

BigDecimal valorMulti= valor.multiply(taxaMaxima);

valorMulti = valorMulti.divide(divisor);

valor = valorMulti.add(valor);

return valor;

}}}

Vamos ao que interessa que é criar a classe que fará os testes e em seguida veremos quantos % de nossa classe é coberta, para isso criamos os seguites testes, o qual vai está passando.

publicclass MultaMoraTeste {

@Test

publicvoid testPeriodoValidoMes() throws ParseException {

assertEquals(new BigDecimal(120), new MultaMora().verificaAtraso(

“10/11/2010″, “20/01/2011″, new BigDecimal(100)));}

@Test

publicvoid testCalculaValor(){

//TODO

}}

Testes Passando

Vimos que os testes estão passando tranquilamente. Nada de errado, pois esperamos que eles uma hora ficasse verde. Não vamos discutir aqui o ciclo de TDD.

Agora veremos quantos % nossa aplicação está coberta pelos testes. Então precisamos rodar os testes agora usando o plugin Eclemma e para isso temos que rodar conforme a imagem a seguir:

Ao executar observe os tests units foram executados e logo em seguida temos o relatorio de cobertura.Veja que 98% não é 100% , isso é evidente, mas tem que ficar claro na sua mente que não temos 100% dos testes, e vamos navegar na arvore e ver quem não está coberto segundo a ferramenta. Mas, antes disso observe que temos quatro colunas, sendo de fácil interpretação. A primeira fala o % coberto, a segunda as instruções cobertas, a proxima instruções não cobertas e a ultima o total de instruções.Podemos ver que o método calculaMulta não está 100, mas onde não está 100%? o que está faltando? Para ver isso basta dar dois cliques em cima do método na aba Coverage, que veremos o resultado a seguir:

Observe que temos no nosso code, linhas verdes e uma vermelha, a verde significa que aquela linha está coberta pelo teste, a vermelha como sempre é um problema que precisamos resolver, ou seja, linha não está cobert. Em outras palavras não temos nenhum teste que valide aquele valor. Então vamos resolver o problema. Para isso, vamos adicionar o seguinte teste na classe de Test que criamos.

@Test

publicvoid testCalculaValor(){

BigDecimal testValor = new MultaMora().calculaMulta(1, new BigDecimal(3));

assertEquals(new BigDecimal(3),testValor);

}

Observe que agora estamos verificando aquela valor que é return ele de fato nao tinha sido testado, então criamos esse teste somente para verificar aquela parte e saber se ele vai retornar de fato o que esperamos. Rode os testes com cobertura novamente e veja agora o resultado.

Agora temos 100% de cobertura em nosso código, observe que coisa mais linda de ser vista. Porém, isso aqui foi com um exemplo muito simples com o objetivo de mostrar a vc leitor como saber quantos % de seu code está coberto. Para praticar vc pode pegar projetos antigos seus e tentar cobrir alguns cenários. Não posso deixar de falar que 100% de cobertura não significa que seu code é o melhor do mundo, o mais interessante são os testes que vc possui, sempre que for escrever seus unit tests pense, o quanto esses são eficientes. O percentual de cobertura vira consequência qto mais eficiente for seu teste.

Enfim, espero que tenham gostado do post!!
abracos,

see ya! Next post.

Related Posts with Thumbnails