Escolar Documentos
Profissional Documentos
Cultura Documentos
Histrico de Alteraes
Data
Verso
Descrio
Autor
Aprovado Por
10/06/2009
1.0
VERSO INICIAL
Cleber Chian
Iveruska Arteiro
Pgina 2 de 16
ndice
1 Introduo........................................................................................................................................... 5
2 Convenes de Nomenclatura ......................................................................................................... 5
2.1 Nomes de Arquivos / Pacotes........................................................................................................ 5
2.2 Classes e Interfaces........................................................................................................................ 6
2.3 Atributos........................................................................................................................................... 6
2.4 Variveis........................................................................................................................................... 6
2.5 Constantes ...................................................................................................................................... 7
2.6 Mtodos............................................................................................................................................ 7
2.7 Parmetros....................................................................................................................................... 8
3 Formatao......................................................................................................................................... 8
3.1 Indentao........................................................................................................................................ 8
3.2 Comprimento de Linha................................................................................................................... 8
4 Organizao do Arquivo.................................................................................................................... 8
5 Comentrios....................................................................................................................................... 9
ndice de Tabelas
ndice de Figuras
Pgina 4 de 16
1 Introduo
Este documento apresenta o padro de codificao geral para a linguagem de programao
Java. Este padro o seguido e recomendado pela Sun e cobre a nomenclatura de arquivos,
organizao de arquivos, formatao, comentrios, declaraes, comandos, espaamentos,
convenes de nomeao, boas prticas de programao e cdigos exemplos.
Um padro de codificao visa facilitar o entendimento do cdigo do sistema por qualquer
pessoa que conhea e siga os padres de codificao, pois estabelece regras definindo como o cdigo
deve ser escrito.
Sempre que possvel, devem ser utilizadas ferramentas para automatizar a validao das
convenes de nomenclatura, a formatao e os comentrios do cdigo fonte, a identificao de erros
de programao e a verificao das boas prticas de programao.
2 Convenes de Nomenclatura
2.1 Nomes de Arquivos / Pacotes
Utilizar apenas letras minsculas sem acentuao e, quando necessrio, nmeros.
Iniciar com o nome do domnio de Internet da organizao, escrito ao contrrio.
Exemplos:
package br.jus.tjpe.<nome_do_sistema>.web
package br.jus.tjpe.<nome_do_sistema>.persistencia;
package br.jus.tjpe.<nome_do_sistema>.dao.api
Access Objects)
package br.jus.tjpe.<nome_do_sistema>.dao.impl
Data Access Objects)
(Interfaces
dos
Data
(Implementao
dos
package
br.jus.tjpe.<nome_do_sistema>.dao.exception
relacionadas camada de persistncia)
package br.jus.tjpe.<nome_do_sistema>.entidade
relativas ao Domnio da aplicao)
(Entidades
package
br.jus.tjpe.<nome_do_sistema>.negocio
mtodos de negcio)
(Classes
package
br.jus.tjpe.<nome_do_sistema>.negocio.exception
relacionadas camada de negcio)
(Excees
bsicas,
com
os
(Excees
Pgina 5 de 16
2.3 Atributos
Utilizar nomes simples e descritivos, evitando abreviaturas.
Utilizar apenas letras sem acentuao e, quando necessrio, nmeros.
Iniciar com letra minscula e utilizar letras maisculas nas primeiras letras das palavras.
Utilizar o plural para nomear atributos do tipo array ou coleo.
Exemplos:
private String nomeSistema;
private String nomeUsuario;
private Date dataNascimento;
private String cep;
private Boolean sexo;
private Integer codigoModuloSistema;
private PerfilAcesso[] perfisAcesso;
private ArrayList telefones;
2.4 Variveis
Utilizar nomes simples e descritivos, evitando abreviaturas.
Utilizar apenas letras sem acentuao e, quando necessrio, nmeros.
Iniciar com letra minscula e utilizar letras maisculas nas primeiras letras das palavras.
Utilizar o plural para nomear variveis do tipo array ou coleo.
Pgina 6 de 16
Variveis utilizadas como contadores podem ser nomeadas com apenas uma letra.
Exemplos:
String nomeUsuario;
int valorSaldo;
ArrayList codigos;
int i;
2.5 Constantes
Utilizar nomes simples e descritivos, evitando abreviaturas.
Utilizar apenas letras sem acentuao e, quando necessrio, nmeros.
Utilizar somente letras maisculas separando as palavras com underline (_).
Exemplos:
static final int TIPO_USUARIO_ADMINISTRADOR = 1;
static final String VERSAO_SISTEMA = 1.0;
2.6 Mtodos
Utilizar nomes simples e descritivos, evitando abreviaturas.
Utilizar apenas letras sem acentuao e, quando necessrio, nmeros.
Iniciar com verbos no infinitivo, com exceo dos mtodos de acesso a atributos de classe e
mtodos que retornam boolean.
Os mtodos de acesso a atributos de classe devem iniciar com get e set.
Os mtodos que retornam boolean podem iniciar com o prefixo is, um verbo (no tempo mais
adequado) ou outra palavra qualquer.
Iniciar com letra minscula e utilizar letras maisculas nas primeiras letras das palavras.
Exemplos:
Usuario consultarUsuario();
void atualizarSaldo();
String getNomeUsuario();
void setNomeUsuario();
boolean isUsuarioAdministrador();
boolean temSaldo();
Pgina 7 de 16
2.7 Parmetros
Utilizar nomes simples e descritivos, evitando abreviaturas.
Utilizar apenas letras sem acentuao e, quando necessrio, nmeros.
Iniciar com letra minscula e utilizar letras maisculas nas primeiras letras das palavras.
Utilizar letras maisculas somente nas primeiras letras das palavras e nas abreviaturas.
Utilizar o plural para nomear parmetros do tipo array ou coleo.
Exemplos:
Usuario consultarUsuario(Integer codigoUsuario);
void atualizarSaldo(BigDecimal saldoAtual);
boolean temFeriado(Date[] datas);
3 Formatao
3.1 Indentao
A unidade de indentao deve ser formada por quatro espaos em branco.
No deve ser utilizada a tabulao. Caso a ferramenta de desenvolvimento permita, os tabs
devem ser automaticamente convertidos em quatro espaos em branco.
Sempre indentar o cdigo dentro do escopo de cada bloco.
Veja alguns exemplos de chamadas de mtodos onde necessrio utilizar mais de uma linha:
this.someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = this.someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
Veja alguns exemplos de expresses aritmticas onde necessrio utilizar mais de uma linha:
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFIRA !
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // EVITE !
//USE ESTA
if ((condition1 && condition2)
|| (condition3 && condition4)
|| !(condition5 && condition6)) {
doSomethingAboutIt();
}
//OU ESTA
//USE ESTA
4 Organizao do Arquivo
Os elementos que compem uma classe (ou interface) devem estar na seguinte ordem:
Atributos estticos e cdigos de inicializao estticos
Pgina 9 de 16
Atributos
Construtores
Mtodos estticos
Mtodos
Mtodos abstratos
Atributos, construtores e mtodos devem estar ordenados de acordo com os modificadores de
acesso, na seguinte ordem:
public
protected
package protected
private
5 Comentrios
As linguagens de programao normalmente suportam comentrios de documentao e
comentrios de implementao.
Os comentrios de documentao servem para descrever a especificao dos
elementos de cdigo (classes, construtores, mtodos, funes, procedimentos, atributos,
variveis, etc.). Para algumas linguagens, existem ferramentas que podem extrair e exportar,
normalmente no formato html, gerando uma documentao tcnica do sistema (Ex.: Java).
J os comentrios de implementao servem para descrever a lgica utilizada em um
trecho de cdigo, facilitando o entendimento.
As regras de obrigatoriedade de comentrios de documentao e implementao para
os elementos do cdigo devem ser definidas para cada sistema, considerando a linguagem de
programao e os detalhes de projeto e construo utilizados (design patterns, frameworks,
etc.).
/**
* Retorna um objeto TipoAusencia para ser mostrado na tela de consulta do sistema.
* passado como parmetro para o mtodo o cdigo do tipo de ausncia.
* @param TipoAusencia objeto do tipo TipoAusencia com atributo ID preenchido
* @return TipoAusencia objeto do tipo TipoAusencia com todos os atributos preenchidos
aps consulta no BD
* @see TipoAusencia
*/
public TipoAusencia get(TipoAusencia tipoAusencia) throws BusinessException {
try {
return this.tipoAusenciaDAO.get(tipoAusencia, tipoAusencia.getId());
} catch (PersistenceException e) {
throw new BusinessException("Erro ao recuperar a entidade", e);
}
}
Pgina 11 de 16
Pgina 12 de 16
6 Boas Prticas
6.1 Manutenibilidade e extensibilidade
6.1.1 Convenes de nomenclatura
Seguir as convenes de nomenclatura, comentrios e formatao do cdigo.
Isso facilita o entendimento do cdigo e simplifica os trabalhos de manuteno.
Pgina 13 de 16
Os tipos numricos devem ser convertidos explicitamente (cast), indicando que a converso
proposital.
6.2 Performance
Pgina 15 de 16
Pgina 16 de 16