Posted by Alberto on January 21st, 2008
Estava desenvolvendo um projeto web utilizando a linguagem PHP. O mesmo encontrava-se 65% concluído. Foi então que, no início da semana passada resolvi parar e re-começar o projeto.
Alguns devem estar me chamando de louco! “O cara tem 65% de um projeto concluído e vai jogar na lata do lixo?! Esse cara é louco!”.
Eu tenho uma explicação para isso: Primeiramente, trata-se de um projeto particular, o que “não requer” $ de investimento no início. E, relativamente, grande. No início do projeto foi decidido usar um framework - que eu nunca havia usado. Tempo vai, tempo vem e começaram a aparecer algumas dúvidas na utilização do framework. Busquei suporte e não encontrava muita coisa na internet, já que se tratava de uma ferramenta “nova” (nem na versão 1.0 estava) e consequentemente, apareceram alguns POG’s (arghhhh). Sem contar que o framework era lento demais.
Semana passada, no meu “enorme” apartamento, comecei a pensar no bendido projeto( O que irá me render milhões de dólares [rs] ) e decidi refatorar o modelo que tinha em mãos e re-começar o projeto em Java.
Começaram as pesquisas por um framework web MVC. E o escolhido foi……MENTAWAI!
Para persistência, estou utilizando o Hibernate com Annotations..
Hoje o projeto ainda não tem nem 10% do que tinha antes, mas posso garantir que está bem mais estruturado. Os beans já estão mapeados e já tem até alguns CRUD’s [rs]
Aqueles que estão pensando em qual framework MVC utilizar na web, deêm uma olhada no mentawai, é uma ótima ferramenta e o suporte da comunidade é muito bom!
Espero, em breve, postar novas notícias do projeto…
Posted by Alberto on January 16th, 2008

Como no post anterior eu citei o Annotations do hibernate, pensei em falar um pouco sobre o assunto e, posteriormente, mapear uma aplicação de exemplo.
– –
Afinal, o que é hibernate? Para que serve? Tenho mesmo que aprender mais um framework Java? …
São tantas as perguntas para quem está iniciando em Java, aliás, não somente para os iniciantes. Basta tomar conhecimento de uma nova ferramenta que tem como propósito aumentar a produtividade no desenvolvimento que dúvidas e mais dúvidas parecem “pipocar” na mente.
O Hibernate é um framework de persistência objeto relacional para aplicações Java. Ele faz o mapeamento das classes java para tabelas no banco de dados relacional (por exemplo: mysql, DB2, postgres..). Além de fornecer total liberdade e suporte para programar as classes seguindo as características do paradigma OO ( associação, polimorfismo, herança, coleções..).
O framework não serve apenas para fazer o MOR - Mapeamento Objeto Relacional. Todas as operações que envolvem banco de dados (CRUD, Select) podem ser feitas de forma transparente pelo hibernate.
E onde é que entram os “Annotations ” ?..
Annotations são metadados que aparecem no código fonte e que são ignorados pelo compilador. Este recurso somente foi adicionado na versão Java SE 5.0 e sua utilização agrega significados especiais ao código fonte.
Atualmente, hibernate é um dos frameworks de persistência Java mais utilizados no mercado. Mas, não é o único e você não é obrigado a utilizá-lo se não gostar/desejar.
Posted by Alberto on January 15th, 2008

Durante alguns anos trabalhando com desenvolvimento, tenho observado que enquanto alguns desenvolvedores amam outros, literalmente, odeiam trabalhar com arquivos XML.
Não sou ‘tão extremista’ assim. Tá certo que XML não é uma das 7 maravilhas do mundo, mas acredito que existem casos e casos para se utilizar. Aqueles que odeiam alegam que ele é feio, lento e, às vezes, chato de se escrever.
Realmente, existem situações em que sua utilização deixa o parser lento. Vamos pensar no seguinte ambiente: Quando estamos trabalhando com o hibernate e temos um número elevado de tabelas mapeadas em arquivos xml o tempo de carga dele é maior do que se fosse utilizado annotations. Tá certo que esse tempo de “espera” é apenas na primeira execução do sistema. Eu sei. Apenas citei este exemplo que me veio a cabeça. ([OFF] Aproveitando o exemplo: O que você acha mais rápido: parsear um arquivo XML ou fazer reflection para acessar as annotations? Particularmente, prefiro mapear minhas classes com annotations )
XML, use com moderação e nos lugares certos!
Posted by Alberto on January 14th, 2008

Preparem a pipoca!!
É com muita satisfação que apresento à vocês o primeiro screencast do Blog.
Este é o primeiro de muitos. A idéia é publicar uma série de vídeos com dicas sobre desenvolvimento de software.
Para iniciar a nossa série de screencast, apresento-lhes o primeiro: “Refatoração na Prática”, onde mostro como aplicar técnicas de refactoring com o auxíio de uma IDE.
PS: Não pensava que daria tanto trabalho. Para quem nunca mexeu com edição de vídeo até que está muito bom. Por isso, peço que aliviem o meu lado nos primeiros vídeos.. =D
Espero que gostem…
Link no YouTube: http://www.youtube.com/watch?v=WPF6qriM8wo
Link para Download: http://www.albertoleal.eti.br/Screencast/ScreenCast-Refatoracao_na_Pratica.avi
Posted by Alberto on January 11th, 2008

Vamos ver uma definição de “teste”.
Dicionário:
“acto ou efeito de verificar ou provar alguma coisa (equipamento, sistema), sob certas condições, para verificar e avaliar a sua qualidade, natureza ou comportamento. “
Na nossa área, quando testamos algo ( funcionalmente,unitariamente..) queremos garantir que dada uma entrada o resultado seja uma saída esperada.
Testar um sistema de software não é simplesmente sentar na frente do computador e iniciar um processo exaustivo de entrada de informações e aguardar a sua resposta. Existem diversas maneiras de se testar um software - estrutrados, OO… A melhor forma de se testar uma aplicação é elaborando um conjunto de testes e automatizando-o. Existem enumeras ferramentas que nos auxiliam na criação de testes (jUnit, por exemplo), o que torna mais simples utilizar os testes como um artefato de apoio na construção de sistemas de software.
Até mesmo para elaborar testes, deve haver um planejamento (menor valor absoluto, maior valor absoluto, métricas..). Para isso existem técnicas, como por exemplo:
- Teste Caixa Branca;
- Teste Caixa Preta;
- Teste Funcional;
- Teste de Confiabilidade;
- etc…
Teste bem elaborados podem preservar a semântica do programa. Alguns desenvolvedores pregam que os testes devam ser planejados antes mesmo que uma linha de código tenha sido implementada. Dessa forma, o desenvolvedor se questiona sobre a necessidade de se alterar alguma coisa no requisito.
O artefato “TESTES” de um projeto não tem como objetivo único e exclusivamente verificar se uma funcionalidade retorna uma saída esperada. Quando estamos planejando um conjunto sólido de testes, estamos verificando se todos os requisitos foram atendidos, se o objetivo da aplicação está claro para todos os envolvidos, ou seja, além de se testar um software, a organização do projeto estará sendo sempre validada e confirmada.
Recent Comments