Sexta-feira, 23 de Novembro de 2007

Estou de mudanças :-)!!


Queria comunicar as minhas 34 visitas diárias (segundo o Google Analytics) que eu estou de mudança, na verdade não "eu" necessariamente, mas sim o blog...
no começo do things on my mind eu pensei em hospeda-lo em qualquer serviço de blog, pois esperava um máximo de 10 visitas semanais dos amigos que trocam informações sobre desenvolvimento comigo pelo MSN, mas apesar da falta(inexistência) de divulgação, o blog tem sido bastante visitado. Segundo o Google Analytics 91,25% chegam por meio de sites de pesquisa, 6,41% chegam através de outros sites (Links) e apenas 2,34% chegam por tráfego direto. então pensei em dar uma ampliada, uma melhorada no blog para receber melhor essa turma :-)!
por hora eu estarei parando de postar aqui, mas deixo avisado que nessas férias irei me dedicar em criar um belo blog no wordpress e deixar o link aqui (é claro) para vocês continuarem visitando o "coisas da minha mente" *rs.
Conforme eu for avançando nos meus estudos de Java Enterprise Edition e outras ferramentas desse magnífico mundo, eu vou atualizando o blog c/ novidades!!
Gostaria de agradecer e espero poder ajudar, mesmo que com pouco, para a comunidade Java Nacional continuar crescendo!

Abraços.

Foreach no Java

Quem programa em C# deve conhecer uma instrução mais ou menos assim:

int[] valores = new int[] { 0, 1, 2, 3, 5, 8, 13 };
foreach (int valor in fibarray)
{
System.Console.WriteLine(valor);
}

Essa instrução nada mais é do que um meio de economizar digitação e deixar o código mais limpo. o mesmo resultado poderia ser obtido com esse código:
for (int i = 0; i < valores.length; i++){
int valor = valores[i];
System.Console.WriteLine(valor);
}

A novidade é que o Java também tem o conhecido forearch, a diferença é que no java a syntax é levemente diferente, como no código abaixo:
int[] valores = new int[]{ 0, 1, 2, 3, 5, 8, 13 };
for (int valor : valores){
System.out.println(valor);
}

Que também não optimiza o código em relação ao jeito que nós fazemos atualmente mas deixa o código mais limpo e te poupa digitação o que de fato faz você ganhar tempo considerando a substituição de milhares de for por foreachs :O!

Algumas observações interessantes:
1. O foreach do java só existe apartir do Java 5.0, então, se seu programa for rodar em versão anterior, evite o uso...
2. O foreach só itera sobre coleções (arrays, lists etc...) então para outros casos é necessário o uso do for tradicional.
3. Mais uma vez vale lembrar que retornar uma lista Hash ou um ArrayList de ma classe encapsulada quebra completamente o encapsulamento da mesma, além disso também não é uma boa prática retornar um Iterator a partir de um método (leia aqui), uma solução que existe para isso é tornar a class encapsuladora uma Iterable, usando a interface Iterable para isso.

Abraços!

Sexta-feira, 2 de Novembro de 2007

Gerência de projeto


Esses dias encontrei essa imagem na internet que explica bem o que acontece nesse meio de desenvolvimento de sistemas. achei legal por essa imagem estar mais atualizada, com novos quadrinhos... esperamos que esses quadros venham a ter um fim é obvio, para isso é necessário que as empresas e os profissionais se conscientize da necessidade de utilização de uma boa metodologia de desenvolvimento... até lá nos resta achar graça de imagens como essa. *rs! abraços.

Segunda-feira, 8 de Outubro de 2007

Otimizadores de código java

Quando estamos desenvolvendo, volta e meia surge a dúvida se o que estamos fazendo segue os design patterns e se é um modo eficiente, ou como diria meu professor de Estrutura de dados "Elegante" de se programar.
Quando isso acontece, geralmente recorremos aquele amigo mais experiente, que serve como um Guru na área para nos auxiliar...
Para tentar não perturbar tanto esse meu amigo guru, eu optei em procurar por ferramentas que pudessem me dizer se o que estou fazendo é correto. foi ai que encontrei o PMD e o FindBugs, ambas excelentes ferramentas que já me alertaram para alguns bugs. a utilização de ambas é bem simples, o PMD por exemplo pode ser integrado ainda no eclipse.
dentre das utilidades do PMD por exemplo vale salientar:

* Possible bugs - empty try/catch/finally/switch statements
* Dead code - unused local variables, parameters and private methods
* Suboptimal code - wasteful String/StringBuffer usage
* Overcomplicated expressions - unnecessary if statements, for loops that could be while loops
* Duplicate code - copied/pasted code means copied/pasted bugs

Para acessar os seus respectivos sites e conhecer mais, acesse:
PMD
FindBugs

História das linguagens de programação

A O'Reilly através de um diagrama proposto por um desenvolvedor (desculpem-me não ter o nome dele para citar), gerou um diagrama mais profissional acerca da história das linguagens de programação, juntamente com sua data de criação e influências no processo:

O link pada o PDF em full resolution pode ser acessado aqui!
Um forte abraço.