Folha de estilo - DesenhoMaster2017/SpaceShooter GitHub Wiki

Nomes - atributos, variáveis, métodos, classes e constantes

Cada variável deve ter o seu nome em Inglês;
Cada branch, commit e issue deve ser escrito em português;
O nome de variáveis deve ser escrito em camelCase, com nomes significativos.
Exemplo:

      float thisIsAVariable;

O nome de funções deve ser escrito em camelCase, com nomes significativos.
Exemplo:

      void methodOne();

O nome de classes deve seguir o padrão CamelCase.
Exemplo:

      class MyClass;

O nome de constantes deve ser escrito com letras maiúsculas, separando as palavras com ‘_’.
Exemplo:

      const int NUMBER_PEOPLE;

Notação para strings:

Deve ser usado aspas duplas ("") ao invés de aspas simples ('') em todos casos possiveis.
Exemplo:

      askClientName = "Writes client's name: ";

Uso de parênteses:

Deve ser usado nos seguintes casos.
Exemplos:

  • Condicionais:

        if (valueTotal == valueMonth && valueMonth == valueDay)
    
  • Funções:

        void rankingSchool(int value)
    

Use de chaves:

Deve ser aberta as chaves na mesma linha.
Exemplos:

  • Condicionais:

        if (valueTotal == valueMonth and valueMonth == valueDay) {
          // Do Something
        }
    
  • Funções:

        float calculatesProfit(int days) {
          // Do Something Else
        }
    
  • Classes:

        class SchoolEnade {
          // To Do
        }
    

Tamanho da linha e indentação:

Evitar linhas maiores do que 120 caracteres;
Quando uma declaração não preencher em uma única linha, pode ser necessário quebrá-la;
Indente com 4 espaços simples — Seja consistente. Não indente com a tecla TAB.
Exemplo:

      if (personAge < 18 && // There is more than 80 characters here
          personVip == NULL )

Espaçamento:

Deve ser colocado um espaço em branco (' '), nos seguintes casos.
Exemplos:

  • Condicionais (depois do if e entre as variáveis):

      if (schoolBase > schoolCompare)
    
  • Funções (entre os parâmetros):

      cleanFields(allFields, personEnterprise)
    
  • Comentário:

    Comentário de 1 linha:

            // This method is responsible to calculate ENADE's grades
    

    Comentário de mais de uma linha:

            /* This method is responsible to show ENADE's grades
             * with University's Name, University's City and
             * University's State */
    
  • Operações matemáticas:

     (valueMonth * amountMonth) / (quantityEmployees)
     (“The month value is” + valueMonth);
    
  • Não deve existir um espaço em branco depois do parênteses ou aspas duplas:

        strWarning = (“Type Again:”);
    

Quebra de linha

Não deve existir uma linha extra entre a declaração da função e o começo do código.
Exemplos:

        if(quantityProduct == quantityStorage) {
           // ToDo
        }

Deve existir uma linha extra entre blocos de programação:

        for(state = 0; state < numberStateCountry; state = state + 1) {
            // ToDo
        }

        for(school = 0; school < numberSchoolState; school = school + 1) {
           // ToDo
        }

Deve existir uma quebra de linha entre os parâmetros dos construtores:

        public Client(String name,
                      String cpf,
                      String telephone,
                      String age,
                      Address address) {
           // Construtor
        }

Deve existir uma quebra de linha depois do cabeçalho da classe

      /**********************************************************
       * File: GestaoEmpresa.java
       * Purpose: Main menu of the program.
       **********************************************************/

      public class ManagementEmpress {
         // Class declaration
      }

Comentários:

Cada função deve ter um bloco de comentário explicatório em inglês, começando com /* e terminando com */.
Exemplos:

        /* This function calculates the profit
         * of the month in the sales department */

Cada bloco tem um comentário explicatório

        // This sum calculates the amount of money spent on a given time period

Cabeçalho:

Cada arquivo deve ter um cabeçalho contendo uma linha com o nome do arquivo e outra com o propósito do arquivo.
Exemplo:

         /************************************************
          * File: JuridicalClient.java
          * Purpose: JuridicalClient class implementation.
          *************************************************/

Manipulação de exceção:

A manipulação de exceção segue o mesmo padrão aqui apresentado para a condicional if.
O catch irá começar depois de um espaço simples na mesma linha que a chave do try irá ser fechada.
Exemplo:

      Try {
          newPhrase = phrase.toUpperCase();
      } catch(NullPointerException e) // CATCH OF THE POSSIBLE EXCEPTION. {
      // Exception handling
          System.out.println("The initial phrase is null, it was assigned a default value");
          phrase = "empty phrase";
          newPhrase = phrase.toUpperCase();
        }