Anexo VI

Propaganda
Anexo VI – SOF 46/11
Normas e Padrões para Programação em J2EE
Versão: 1.00
Aplicações WEB
Normas e Padrões para Programação em J2EE
Índice
1. Introdução .................................................................................................................................................................................................
1.1. Objetivo ..............................................................................................................................................................................................
1.2. Escopo ...............................................................................................................................................................................................
1.3. Definições, Acrônimos e Abreviações ................................................................................................................................................
1.4. Referências ........................................................................................................................................................................................
2. Normas de Padrões para Programação em J2EE ....................................................................................................................................
2.1. Extensão de Arquivo ..........................................................................................................................................................................
2.2. Organização de Arquivos ...................................................................................................................................................................
2.2.1. Arquivos Fonte do Java ...............................................................................................................................................................
2.3. Identação............................................................................................................................................................................................
2.4. Comentários .......................................................................................................................................................................................
2.5. Declaração .........................................................................................................................................................................................
2.5.1. Declaração por linha ...................................................................................................................................................................
2.6. Sentenças ..........................................................................................................................................................................................
2.6.1. Sentença de Retorno ..................................................................................................................................................................
2.7. Espaço em Branco .............................................................................................................................................................................
2.7.1. Linhas em branco ........................................................................................................................................................................
2.8. Convenção de Nomes ........................................................................................................................................................................
2.8.1. Pacotes .......................................................................................................................................................................................
2.8.2. Classes e Interfaces ....................................................................................................................................................................
2.8.3. Métodos .....................................................................................................................................................................................1
2.8.4. Constantes .................................................................................................................................................................................1
2.8.5. Variáveis ....................................................................................................................................................................................1
2.8.6. Arquivos .....................................................................................................................................................................................1
2.9. Práticas de Programação ..................................................................................................................................................................1
2.9.1. Práticas variadas ........................................................................................................................................................................1
3. Controle de Alterações do Documento.....................................................................................................................................................1
Página 2 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
Normas e Padrões para Programação em J2EE
1. Introdução
1.1.
Objetivo
A finalidade do documento é definir normas e padrões para programação em J2EE.
1.2.
Escopo
Este documento descreve um conjunto de padrões, convenções e diretrizes para escrever um código em J2EE.
1.3.
Definições, Acrônimos e Abreviações
1.4.
Referências
Página 3 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2. Normas de Padrões para Programação em J2EE
2.1.
Extensão de Arquivo
Devem ser usadas as seguintes extensões de arquivos de J2EE.
Tipo de Arquivo
Extensão
Código Fonte Java
.java
Bytecode
.class
Extensible Markup Language
.xml
Hypertext Markup Language
.html
Java Server Page
.jsp
Tag Library Descriptor
.tld
Arquivo de Propriedades
.properties
Arquivo de Imagem
.gif
Folha de Estilos em Cascata
.css
Script do JScript
.js
Java Archive
.jar
Web Archive
.war
Enterprise Archive
.ear
Projeto do JDeveloper
.jpr
WorkSpace do JDeveloper
.jws
Página 4 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.2.
Organização de Arquivos
Os arquivos são separados por linhas em branco e por um comentário opcional que identifica cada seção.
2.2.1. Arquivos Fonte do Java
Os arquivos fonte do Java devem ter um comentário inicial.
Indicações de Pacotes e Importações – A primeira linha de um arquivo fonte do Java é a indicação do pacote, e em
seguida vem as indicações de import e após isso o comentário.
package br.gov.trt.regiao1.basico.modelo.advogado.dominio;
import br.gov.trt.regiao1.basico.modelo.advogado.persistencia;
Declaração de Classe e Interface - As partes de uma declaração da classe ou da interface, devem aparecer na seguinte
ordem:
- Indicação do pacote
- Indicação do(s) import(s)
- Comentário da documentação de Classe/Interface (/**...*/)
- Indicação da Classe ou da Interface
- Comentário (/*...*/), da execução de Class/interface se necessário
- Variáveis da classe (estática)
2.3.
Identação
Quatro espaços devem ser usados como a unidade de identação.
São evitadas linhas com mais de 80 caracteres, geralmente são usados 70 caracteres.
Quando uma expressão ultrapassar uma linha, será quebrada de acordo com os princípios abaixo:
- Quebra após uma vírgula;
- Quebra antes de um operador;
- Quebras maiores são mais usadas que as menores;
- A linha nova é alinhada com o começo da expressão no mesmo nível na linha precedente;
- Se as quebras acima tornarem o código confuso, serão usados apenas 8 espaços como quebra.
2.4.
Comentários
Informações sobre como o pacote correspondente é construído ou em que diretório reside não são incluídas
como comentário.
São realizadas discussões de decisões do projeto, pois evita a duplicação de informação no código. Se houver
a necessidade de muitos comentários em um código, o mesmo será reescrito.
Os comentários não devem ser incluídos em caixas grandes com os asteriscos ou os outros caracteres. Os
comentários nunca devem incluir caracteres especiais tais como backspace.
Página 5 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.5.
Declaração
2.5.1. Declaração por linha
int level; // nível de identação
int size; // tamanho da tabela
Página 6 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.6.
Sentenças
2.6.1. Sentença de Retorno
return;
return myDisk.size();
return (size ? size : defaultSize);
Página 7 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.7.
Espaço em Branco
2.7.1. Linhas em branco
- Duas linhas em branco são usadas entre seções de um arquivo fonte e entre definições de classe e interface.
- Uma linha em branco é usada entre métodos, entre as variáveis locais de um método e sua primeira
sentença, antes de um bloco ou comentário e entre seções lógicas dentro de um método para melhorar a legibilidade.
Página 8 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.8.
Convenção de Nomes
2.8.1. Pacotes
Regra
<prefixo_pacote>.<nome_subsistema>.<nome_camada>.<nome_variável>[.<nome_papel>]
Explicação
<prefixo_pacote>  br.gov.trt.regiao1
<nome_subsistema>  nome de um dos subsistemas do SAP
<nome_camada>  controle;
modelo
<nome_variável>  nome do pacote, onde todas as letras devem ser minúsculas.
<nome_papel>  servico; [impl]
dominio;
persistencia;
Exemplo
br.gov.trt.regiao1.basico.controle.advogado;
br.gov.trt.regiao1.basico.modelo.advogado.servico;
br.gov.trt.regiao1.basico.modelo.advogado.servico.impl;
br.gov.trt.regiao1.basico.modelo.advogado.dominio;
br.gov.trt.regiao1.basico.modelo.advogado.persistencia;
br.gov.trt.regiao1.basico.modelo.advogado.servico;
2.8.2. Classes e Interfaces
Classes
Padrão
Regra
Exemplo
Action
<nome_variável><ação>Action
AdvogadoManterAction
Business Delegate
<nome_variável>Delegate
AdvogadoDelegate
Sessions Façade
<nome_variável>ServiceBean
AdvogadoServiceBean
Application Service
<nome_variável>AppService
AdvogadoAppService
Business Object
<nome_variável>BO
AdvogadoBO
Data Transfer Object
<nome_variável>DTO
AdvogadoDTO
DAO
<nome_variável>DAOHibernate
AdvogadoDAOHibernate
Interfaces
Padrão
Regra
Exemplo
Página 9 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
Interfaces
Padrão
Regra
Exemplo
EJBLocal
<nome_variável>ServiceLocal
AdvogadoServiceLocal
EJBLocalSessionHome
<nome_variável>ServiceLocalHome
AdvogadoServiceLocalHome
EJBRemote
<nome_variável>Service
AdvogadoService
EJBSessionHome
<nome_variável>ServiceHome
AdvogadoServiceHome
2.8.3. Métodos
Os nomes dos métodos são sempre verbos.
De acordo com o objetivo do método, o verbo usado no nome do método deve ser definido seguindo a tabela abaixo:
Objetivo do Método
Objetivo
Exemplo
salvar
Incluir / atualizar registro
salvarAdvogado()
remover
Excluir registro
removerAdvogado()
buscarPorChave
Retorna um único registro pelo identificador
buscarAdvogadoPorChave()
buscarPor<nome_variável>
Retorna registros baseado em um critério de buscarAdvogadoPorNome()
seleção
buscarPorFiltro
Retorna um registro baseado em um ou mais buscarAdvogadoPorFiltro()
critérios de seleção, esse método é usado para
as páginas de filtro
2.8.4. Constantes
Regra
NOME_DA_CONSTANTE
Explicação
O nome de constantes deve ser sempre definido com letras maiúsculas e palavras
separadas por “_”.
Exemplo
static final int ADVOGADO_DAO = 1;
Página 10 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.8.5. Variáveis
Regra
<nome_variável>
Explicação
<nome_variável>  nome da variável, onde somente a primeira letra de cada palavra do
nome deve ser maiúscula.
Exemplo
int numeroOAB;
2.8.6. Arquivos
Objetivo do Arquivo
Regra
Exemplo
Página JSP
<nome_variável><Função>.jsp
advogadoManter.jsp
Arquivo de Propriedade
Recursos<nome_variável>.properties
RecursosAdvogado.properties
struts-config
struts-config-<nome-variável>.xml
struts-config-advogado.xml
Página 11 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
2.9.
Práticas de Programação
2.9.1. Práticas variadas
Parênteses - São usados parênteses nas expressões que envolvem operadores misturados para evitar problemas da
precedência de operador.
if (a == b && c == d)
// EVITE
if ((a == b) && (c == d))
// USE
Página 12 de 13
Aplicações WEB
Normas e Padrões para Programação em J2EE
3. Controle de Alterações do Documento
Versão
1.0
Descrição
Elaboração do documento
Data
30/08/2005
Responsável
Eric Sander
Página 13 de 13
Download