Skip to content
italopaiva edited this page Sep 12, 2015 · 6 revisions

Padrão de Codificação em Java

Versão 1.0

Histórico de Revisões

Data Versão Descrição Autor
04/09/2015 1.0 Criação do documento Emilie Morais

1. Idioma

  • O idioma utilizado deve ser o inglês.

2. Arquivos

  • O nome do arquivo deve ser o mesmo nome da classe pública que o arquivo abriga.

  • O arquivo deve conter, em ordem:

    1. Declaração dos pacotes;
    2. Declaração das importações;
    3. Somente uma classe pública;

3. Pacotes (Package Statement)

  • Os pacotes são declarados após qualquer comentário inicial em um arquivo fonte.
  • Pacotes do tipo “java.” são listados primeiro, seguidos das classes das extensões de Java (pacotes do tipo “javax.”) e, por último, os pacotes das classes específicas do sistema e outras API’s utilizadas.

4. Importações (Import Statement)

  • São declaradas após os pacotes.

5. Declaração de Classes

  • Os nomes das classes devem começar com letra maiúscula, devem estar no singular e não podem ser abreviados.
  • Para nomes com mais de uma palavra, cada palavra adicional também deve começar com letra maiúscula.

6. Ordem dos membros da classe

  • Após a declaração do nome da classe e de seus supertipos, segue-se a ordem a seguir de declarações:

    1. Comentários de implementação, se houver;
    2. Constantes;
    3. Variáveis de classe (modificador static);
    4. Variáveis de instância;
    5. Construtores;
    6. Métodos;

    Exemplo 1:

         // Nome do arquivo = FirstClass.java
    
         package mvc.model;
    
         import java.util.Scanner;
    
         public class FirstClass{
     
         private String ClientName;
      
                    public void registerClient(){
         	           // Method body
                    }
         }
    

7. Variáveis

  • Deve ser feita apenas uma declaração por linha.

  • Para variáveis de instância e de classe:

    1. Todas as variáveis devem ter nomes significativos, sem abreviações (exceto em casos de componentes visuais).
    2. Todas as variáveis formadas por uma única palavra devem ser escritas somente com letras minúsculas. As que são formadas por mais de uma palavra são escritas com a primeira letra em maiúscula de cada palavra adicional (padrão lowerCamelCase).
  • Para constantes:

    1. Os nomes de constantes não devem ser abreviados, possibilitando o maior entendimento possível.
    2. As palavras que compõem o nome da constante devem possuir todas as letras maiúsculas. No caso de nomes compostos é utilizado o underline para separar as palavras.

8. Métodos

  • Os nomes dos métodos devem ser um verbo ou uma frase verbal que indique a utilidade do método.
  • A escrita dos nomes deve ser em letra minúscula, e cada palavra adicional deve começar com letra maiúscula. (padrão lowerCamelCase)
  • Não se deve abreviar os nomes de métodos.

Exemplo 2:

          public class FirstClass {
          private String clientName;
              private int clientAge;

              public FirstClass(){ 
               // Constructor
              }

              public void registerCliente(){
              // Method body
              }

              public void calculateAge(){
                  // Method body
              }

          }

9. Comandos

9.1 Estruturas Condicionais
  • Estruturas de if/else devem possuir chaves para indicar seus blocos independente da quantidade de linhas.
  • Sempre que utilizar do recurso if, necessariamente, utilize um else e escreva um comentário, mesmo que este pareça ser redundante.
  • Na estrutura switch, o comando break deve estar na última linha do campo case.
  • Todos os campos case devem conter chaves delimitando seus respectivos blocos.
  • Toda estrutura switch deve conter uma cláusula default que, se vazia, deve haver um comentário.
9.2 Estruturas de repetição
  • No laço de repetição for, a atribuição e comparação necessitam de espaço entre os termos.
  • No laço de repetição while e do-while, a comparação necessita de espaço entre os termos.

Exemplo 3:

        for(i = 0; i > tamanhoTurma; i++){
         // Comando do for
        }

        while(i < TamanhoTurma){
        // Comando do while
        }

       do{
        // Comando do do while

       } while(i < tamanhoTurma);
9.3 Tratamento de exceções

Exemplo 4:

           try {
           // Comando do try
           }
           catch(Exception e){
          //Comando do catch
           }

10.Espaçamentos e identação

10.1 Regras Gerais
  • O código deve conter todas as chaves começando na mesma linha do comando.
  • Serão utilizados como unidade de identação quatro (4) espaços em branco.
  • Em métodos que recebem outros métodos como parâmetros, os métodos passados devem ser aplicados em uma variável antes de ser utilizados como parâmetros.
10.2 Linhas em branco
  • A declaração de variáveis deve ser separada de qualquer outro código por uma linha em branco.
  • Antes de um comentário deve se inserir uma linha em branco.
  • Entre as sentenças package e import deve se inserir uma linha em branco.
  • Entre blocos lógicos dentro de um método deve se inserir uma linha em branco.
  • Entre declarações de métodos deve se inserir uma linha em branco.
  • Entre a declaração da classe e o bloco das variáveis de instância deve se inserir uma linha em branco.
  • No final do corpo de um método não é necessário deixar uma linha em branco entre o corpo e a chave.
10.3 Espaços em branco
  • Para atribuições é necessário um espaço entre a variável e o conteúdo.
  • Sempre que houver uso de vírgula (como em parâmetros de métodos), deve haver um espaço entre a vírgula e o termo subsequente. *Para comparações é necessário um espaço entre as variáveis ou valores em questão e o operador.
10.4 Quebra de linha
  • A linha é quebrada depois de uma vírgula.

  • A linha é quebrada antes de um operador.

  • A nova linha é alinhada com o começo da expressão do mesmo nível da linha anterior.

    Exemplo 5:

         public class FirstClass{ 
    
             private String clientName; 
         private int option; 
    
             if(nomeCliente.isEmpty()){ 
         // Bloco do if 
         } 
         else{
         // Bloco do else 
         } 
    
             switch(opcao){ 
             case 1:{
      	 // Conteúdo case 1 
               break; 
         } 
         default:{ 
      	// Conteúdo default break; 
         }
         }
         }
    

11. Comentários

  • O conteúdo dos comentários em uma única linha deve ser separado por um único espaço das barras duplas (‘//’), não sendo necessário o uso de ponto final para indicar o fim do comentário.

    • Os comentários especiais de uma linha para destacar ou delimitar um grupo de linhas pode ser feito utilizando os delimitadores '/**' '*/'.
  • Já os comentários que precisem de mais de uma linha, os símbolos ‘/’ e ‘/’ devem estar cada um em uma linha diferente e o conteúdo do comentário em linhas diferentes das que se encontram os símbolos. No caso em que o contexto permitir, é necessário o uso de ponto final.

  • Ao gerar comentários em blocos, que precisam mais de uma linha, cada linha de comentário deve começar com "* " antes de seu conteúdo.

  • Todos os comentários devem começar com letra maiúscula.

  • Os comentários de documentação seguirão o padrão Java, utilizando os símbolos ‘/**’ e ‘*/’ como delimitações.

    Exemplo 6:

            // Comentários de uma linha para o programa
    
            /** Comentário especial de uma linha */
    
            /*
             * Comentários com mais de uma linha para o programa.
             * Sempre com 1 espaço e letra maiúscula.
             */
    
Clone this wiki locally