sábado, 5 de maio de 2012

Identificadores e JavaBeans

Em Java os três aspectos de identificadores importantes, a saber, são: identificadores legais, convenções de código Java, padrões de nomeação JavaBeans.

IDENTIFICADORES LEGAIS
São as regras que o compilador usa no momento de avaliar se um dado nome é legal. Estes identificadores tecnicamente devem ser compostos apenas por caracteres Unicode, caractere underscore, números e símbolo de moeda e não pode ser utilizada uma palavra chave reservada da linguagem Java como um identificador.

E por falar em palavra chave reservada Java segue aqui uma lista atualizada das 50 palavras chave da versão 1.4 a versão 6.
 
abstract
boolean
break
byte
case
catch
char
class
cost
continue
default
do
double
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
assert
enum





Os identificadores devem começar com uma letra(“a,b,c,d,e...”), cifrão(“$”) ou underscore(“_”) e muito importante nunca, jamais podem iniciar cum o número(“0”,”1”,”2”,”3...”).

Depois do primeiro caractere, os identificadores podem conter qualquer combinação de letras, cifrões, underscores ou números. Veja alguns exemplos válidos e inválidos:
Válidos:
String _nome;
int $idade1;
String estado$civil_2;

Inválidos:
String -sobrenome;
int nota#fiscal;
int 1_dia_semana;

Como Java é case sensitive um identificador “_nome” é diferente de “_Nome” e não há um limite de quantidade de caracteres que um identificador possa conter como, por exemplo, “int $variavel_que_vai_receber_a_idade_maior_que_18;”, mais é bem melhor usar sempre o bom censo porque não dizer as boas práticas de programação.

CONVENÇÕES DE CÓDIGO JAVA
São as recomendações da Oracle para nomeação de classes, variáveis, e métodos. É recomendado enfaticamente que os programadores Java as usem.

De acordo com estimativas realizadas, ao longo da vida útil de um código padrão, 20% do esforço será despendido na criação e no teste do mesmo e 80% restante do esforço será despendido na manutenção e nas melhorias subsequentes deste código.

E para ajudar a diminuir o esforço envolvido em criar, testar, fazer a manutenção e melhorar qualquer código foi criado para Java um conjunto de padrões de programação muito bem chamado de “Convenções de Código Java”, um breve e ótimo documento de leitura recomendado encontrada em http://www.oracle.com/technetwork/java/codeconventions-150003.pdf.

Na prática você poderá se deparar com alguns trechos de códigos bem doentios e de certa forma incompreensíveis e ninguém deseja que você também escreva códigos Java desta forma, nem o seu chefe, nem sua equipe, nem Eu e nem a Oracle.

Como por exemplo, neste breve resumo veja como você deverá escrever suas classes, interfaces , métodos, variáveis e constantes conforme as Convenções de Código Java.

CLASSES E INTERFACES
A primeira letra deve ser maiúscula e se haver mais de uma palavra para formar o nome da classe a primeira letra de cada palavra deve ser maiúscula como “MinhaClasse” este formato é chamado de camelCase e normalmente para classes os nomes devem ser substantivos com se segue: “Gato”, “Banco”, Conta”.

Já para as interfaces os nomes devem ser normalmente adjetivos como: “Capacitavel”, “Organizavel”, “Serializavel”.

MÉTODOS
A primeira palavra deve ser minúscula e depois se aplica a mesma regra de camelCase utilizado nas classes e interfaces e os nomes dos métodos devem ser normalmente pares de verbo e substantivo como por exemplo: “obterSaldo”, “salvarCadastro”, ”executarBalanco”.

VARIÁVEIS
Como nos métodos utiliza-se palavras em minúsculas e se aplica o formato camelCase no caso de mais de uma palavra para o nome da variável e recomenda-se suar nomes curtos e significativos desta forma: “minhaIdade”, “cor”, “i”.

CONSTANTES
Devem ser escritas utilizando no nome letras maiúsculas com caracteres underscore como separadores das palavras se haver mais de uma desta forma: “VALOR_PADRAO”, “NOME_COMPLETO_AUTOR”, “FATOR”.

PADRÕES DE NOMEAÇÃO JAVABEANS
São os requisitos de nomeação da especificação JavaBeans e é importante o programador Java saber todas ou pelo menos algumas destas regras básicas de nomeação JavaBeans.
Se trata de uma especificação JavaBeans feita para ajudar os desenvolvedores a criarem componentes Java que pudessem ser usados por outros desenvolvedores em uma ferramenta de desenvolvimento chamada IDE , como exemplo eclipse e netbeans evitando escrever todos código do zero, a API JavaBeans é um pouco complexa por isso é preciso estudar seus fundamentos para entende-la melhor.

É importante saber que JavaBeans são classes Java possuindo propriedades e sendo uma classe os métodos que modificam o valor de  uma propriedade são chamados de setter e os métodos que obtêm o valor de uma propriedade são chamados de getter .

As regras de nomeação de propriedades JavaBeans e de nomeação Listeners JavaBean de mais importância são: 

Se a propriedade não for booleana, o prefixo do método getter deve ser get. Desta forma: “getTamanho()”, “getNome”, “getPeso” assim todos esses nomes são getters JavaBeans válidos para seus respectivas propriedades.

Se a propriedade for booleana, o prefixo do método getter é get ou is. Por exemplo: “getData” e “isData” são nomes JavaBeans válidos para uma propriedade booleana.
O prefixo do método setter deve ser set. Exemplo: “setTamanho” é um nome JavBean válido para uma propriedade chamada “tamanho”.

Em um nome de um método getter ou setter deve-se mudar a primeira letra do nome da propriedade para maiúscula e depois juntar a ela o prefixo adequado, set get ou is.

As assinaturas de métodos setter devem ser marcadas como public com um tipo de retorno void e um argumento que represente o tipo da propriedade.

E as assinaturas de métodos getter devem também ser marcadas como public, não usar argumentos e ter um tipo de retorno que combine com o tipo do argumento do método setter para a propriedade em questão.

Outro detalhe é que a especificação JavaBean tem suporte a eventos, onde permite aos componentes notificarem uns aos outros quando algo acontece. Este modelo de eventos geralmente é usado em aplicações GUI usando swing por exemplo, quando um evento ocorre como um clique do mouse é comunicado pra muitos outros objetos que possam ter coisas a fazer quando ocorrer um clique. Os objetos que recebem a informação de que ocorreu um dado evento são chamados de listeners e é deles que irei falar logo a baixo encerrando este post.

REGRAS DE NOMEAÇÃO DE LISTENERS JAVABEAN
É importante você saber que os métodos usados para adicionar ou remover listeners de um evento devem também seguir os padrões de nomeação JavaBean, vejamos:

Os nomes de métodos listeners usados para “registrar” um listener com uma fonte de eventos devem usar o prefixo add seguindo do tipo do listener. Exemplo: “addActionListener() “ é um nome válido para um método que uma fonte de eventos deverá permitir  a outros registrarem para eventos Action.

Nomes de métodos listeners usados para “desregistrar” um listener devem usar o prefixo “remove” seguido do tipo do listener usando as mesmas regras do método add, exemplo:  “removeActionListener() “ é válido.

O tipo de listener a ser adicionado ou removido deve ser passado como o argumento para o método. Exemplo:  “addMeuListener(MeuListener ml)” e “removeMeuListener(MeuListener ml)”.

Os nomes de métodos listener deverão terminar com a palavra “Listener”, como no exemplo anterior.

Concluindo, com relação ao que foi abordado aqui sobre identificadores e JavaBeans é somente a ponta do iceberg do que você ainda tem de saber sobre Java, mas não se assuste, Java não é um bicho de sete cabeças de difícil como muitos o fazem e por se tratar de uma linguagem de programação segura e robusta é óbvio que possua conceitos e regras a serem seguidas e mergulhar neste mundo de objetos, APIs e especificações que é o Java, mas será uma aventura com passagem só de ida do que mesmo um calvário, fiquem ligados no que ainda vem por aqui e até a próxima!


Bibliografia:
SIERRA, Kathy. BATES, Bert. Certificação sun® para programador java™ 6 guia de estudo (exame 310-065). Trad. Marcelo Soares. ed. Rio de Janeiro: Editora Alta Books, 2006.

quarta-feira, 2 de maio de 2012

Tudo começa aqui, então, vamos começar com Java


Depois de algum tempo estudando para certificações e praticando códigos em meu dia a dia resolvi compartilhar meu know-how postando alguns tópicos importantes da linguagem Java como estreia deste meu blog.

Espero que o conteúdo seja de grande ajuda didática e bibliográfica para quem esteja pesquisando ou estudando sobre os assuntos abordados aqui, até breve!