segunda-feira, 13 de agosto de 2007

Mudança de BLOG


Olá a todos, venho comunicar que alterei o local do meu BLOG. Criei um domínio www.rafaelcarneiro.org. Desculpem-me o transtorno, mas espero com esse novo BLOG ter mais motivação e espectativas.

domingo, 29 de julho de 2007

Café com Tapioca


No dia 04 de agosto (sábado) ocorrerá o próximo Café com Tapioca
do CEJUG (Ceará Java Users Groups). O local do evento será na FA7 e conta com a presença de Daniel de Oliveira, JUG Leader do DFJUG. O tema da palestra é: "A iniciativa JEDI, o ensino de Java livre e gratuito".
Se você mora em Fortaleza ou em estados vizinhos, não perca essa palestra com esse palestrante renomado.

Me ajude a lembrar: Scrum, XP, RUP, CMM, MPS.br.... esqueci de mais alguma metodologia?

Ao elaborar um projeto, tem-se um dilema: qual metodologia seguir? São tantas que temos de analisar qual irá atender melhor ao projeto. Por que resolvi criar um post com esse assunto? Tem certeza que você não sabe? Ora, atualmente está na moda dizer por aí que você faz parte de um projeto que utiliza uma metodologia ágil, seja qualquer uma delas, essa é a verdade. A maioria das empresas que não adotaram esse tipo de abordagem de gerência de projeto estão incluindo-a em seus escopos.

Segundo o pai dos burros (o dicionário), metodologia significa: subdivisão da lógica que estuda os métodos técnicos e científicos; ou ainda melhor: conjunto de regras para o ensino de uma ciência ou arte;

Eu acredito que focar na mão-de-obra, tornando-a capacitada e produtiva, ainda é melhor do que fazer com que passem por um conjunto de regras para poderem fazer algo. Então vamos consultar no dicionário o significado de outra palavra muito utilizada junto com metodologia: ágil. Segundo ele (o dicionário), a palavra ágil significa: leve, ligeiro. Logo, o termo metodologia ágil não seria para tornar o desenvolvimento mais rápido, mais produtivo? O Scrum está com esse pensamento, você pode ver nesse artigo da Caelum, nesse livro gratuito e também nessa palestra.

Não sou contra metodologias ágeis e nem estou fazendo propaganda para não utilizá-las em projetos, apenas quis enfatizar no parágrafo acima que é importante pensar muito antes de querer incluir alguma metodologia em um projeto. Claro que é bom para a empresa, colocar uma metodologia em seus projetos, estampar no peito e mostrar para os clientes que utiliza uma metodologia X, Y ou Z. Mas o importante mesmo é: entregar o projeto do jeito que o cliente pediu e no tempo que ele pediu.

Na minha pouca experiência profissional já vi casos de empresas que utilizam essas metodologias concluirem bem um projeto, mas em outros casos vi projetos atrasados e com clientes insatisfeitos. Mas será que a culpa é da metodologia ou será que a forma como foi aplicada não foi correta? Estou participando de um projeto que não utiliza nenhuma dessas metodologias citadas e ele está indo muito bem.

Não vou ser o primeiro, nem o segundo e muito menos o terceiro a falar sobre esse assunto. O grande lance é: fique atento ao mercado. Se o mercado exige que você conheça pelo menos uma dessas metodologias, então aprenda, o que importa é isso. Ou, se você for um daqueles que gosta de ler sempre, compre alguns livros e se atualize antes mesmo do mercado exigir.


domingo, 22 de julho de 2007

Atributos dinâmicos nas Tag files

Continuando a série sobre criação de Tag files, vamos conhecer um excelente tópico da especificação JSP 2.0, os atributos dinâmicos das Tag files. No exemplo do post (Criando uma Tag File), foram criados diversos atributos na tag file de nome text. Mas dessa forma, cada vez que quizéssemos colocar um atributo novo nessa tag teríamos que alterar o comportamento da mesma.

Com o dynamic-attributes da Tag File, os atributos podem ser escolhidos na codificação pelo programador.

Vamos aos códigos.

Tag File:




Na primeira linha temos a diretiva <%@tag, que informa algumas características da tag, como codificação, se terá conteúdo e outras opções. É nela que se encontra a configuração para utilizarmos os atributos dinâmicos, o atributo chamado dynamic-attributes. Como valor eu coloquei dynattrs, mas você pode colocar qualquer valor. A função dessa tag é criar uma tag HTML input.

A chave principal é varrer o atributo
dynattrs com um forEach da JSTL para obter os pares key/value para acrescentarmos no código HTML a ser gerado pela tag.

Após obtermos todos os atributos informados pelo programador na JSP, iremos colocá-los na tag HTML input através da variável atributos que foi preenchida pelo forEach.


JSP:


Quaisquer atributos que fazem parte da especificação HTML podem ser passados na JSP.

Resultado:


Note que desta forma temos uma Tag File visualmente melhor, mais fácil de dar manutenção e com mais vantagens sobre as tags que possuem atributos estáticos. Criamos uma tag genérica, ou seja, ela poderá ser um text, radio, hidden e etc.

Você pode ver nesse post como configurar as Tag Files (onde colocá-las, como chamá-las em JSPs...). Nesse exemplo você precisará das libs do JSTL.

Até a próxima.

sábado, 14 de julho de 2007

[CEJUG] Implementando MVC com AJAX

Está disponível para download os slides e códigos da palestra Implementando MVC com AJAX, um evento do Café com Tapioca (CEJUG), ministrada pelo Milfont, que ocorreu nesta quinta-feira, dia 12 de julho.

terça-feira, 10 de julho de 2007

Tratamento de NullPointer no Eclipse Europa

Continuando a série de posts sobre NullPointerException e as primeiras impressões do eclipse europa, hoje estava vendo as novas funcionalidades e um amigo do trabalho me alertou sobre uma nova configuração de Errors/Warnings nas preferências do eclipse.

No eclipse europa, foi adicionado um novo item nas configurações do compilador e agora você pode verificar possíveis erros em tempo de compilação. No menu, vá em Window – Preferences e marque a opção Potential null pointer access como Error.

Veja na imagem abaixo:

Crie uma classe de teste e adicione o método abaixo ou crie um se preferir.

Código:




Com essa opção marcada como Error, o compilador irá gerar um erro informando que a variável situacao poderá lançar um erro de NullPointerException. O compilador entende que esse if pode retornar false e a referência situacao não será instanciada e poderá ocorrer um erro de NullPointerException na chamada do método add da interface List.

Você também pode marcar essa funcionalidade como Warning, para não gerar erros em todos os seus projetos e ainda ficar informado de possíveis erros.

Tem mais funcionalidades interessantes, como: classes serializaveis sem o serialVersionUID, atribuições sem efeitos, blocos catch sem conteúdo e vários outros.

segunda-feira, 9 de julho de 2007

Primeiras impressões do Eclipse Europa

Hoje descompactei o Eclipse Europa para desenvolvedores JEE e fiquei muito satisfeito com essa nova versão. O WTP 2.0 foi lançado e já está disponível nessa versão. Possibilita a criação de vários projetos como: JPA, EJB, J2EE, Web Services e outros. E o melhor, já cria toda a estrutura de diretórios. Possui também auto-complete para as Annotations. A partir de amanhã já irei trabalhar utilizando o Eclipse Europa!

Links relacionados