Guia de Estilo - TecnicasdeProgramacao2016/EuVou GitHub Wiki

Sumário

  1. Declaração de Nomes
    1.1. Váriaveis
    1.2. Classes:
    1.3. Métodos:
    1.4. Abreviações:

  2. Identação
    2.1. Chaves
    2.2. Parênteses
    2.3. Chaves

  3. Headers

  4. Comentários

  5. Marcadores

  6. Operações e Atribuições de Sinais

  7. Javadoc

  8. Referências

##1. Declaração de nomes

1.1 Variáveis: Use CamelCase como padrão.

Ex1:

private int itemId; //this is fine

Ex2:

private int   itemId;  //permitted, but future edits 

1.2 Classes: Use camelCase como padrão. Além disso, a primeira letra de cada variável deve estar em letra maiúscula.

Ex1:

public class EventConsultation extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener
{
}

Ex2:

public class LoginActivity extends AppCompatActivity implements View.OnClickListener 
{
}

1.3 Métodos: Use camelCase como padrão. Não utilize espaços entre variáveis ou colchetes.

Ex1:

protected void onCreate(Bundle savedInstanceState)
{
}

Ex2:

private void initViews()
{
}

1.4 Abreviações: Utilize abreviações apenas para variáveis, e quando declaradas, estas devem apresentar um comentário explicativo.

Ex1:

app //Aplication

Ex2:

int id = item.getItemId(); //id is a identifier



2. Identação

2.1. Chaves

Quando utilizar chaves "{" e "}", utilize na linha de baixo. Utilize um tab tamanho quatro depois da declaração de todos os escopos. Ex1:

if(isPasswordValid == false)
{
    passwordField.requestFocus();
    passwordField.setError(loginValidation.getInvalidPasswordMessage());
}
else
{
}

Ex2:

switch(number)
{
     case 1:
     {
         //Use curly brackets just if the case have more than one line.
         break;
     }
     case 2:
	 break;

     case 3:
	 break;
     
     default:
}

Exceções: No try-catch, a parte do "catch" deve estar na mesma linha. Ex1:

try
{
    json = new JSONObject(str);
}catch (JSONException exceptionJSON)
{
    exceptionJSON.printStackTrace();
}

2.2. Parênteses

Com parentetes, não utilize espaço depois deles. Ex1:

function(int variable)

2.2. Colchetes

Com colchetes, não utilize espaço depois deles. Ex1:

full_name[1] = "Name"

2.3. Quebra-de-linha

Cada linha deve ter no máximo 100 carácteres, e se isto for ultrapassado deve utilizar a quebra de linha. Na linha abaixo a identação, começa com o alinhamento com outras declarações.

Ex1:

getDataTime (int month, int year, int day, int hour,
	     int minute, int second)
{
     //function
}

Ex2:

variablesAverage = (variable1 + variable2 + variable 3 + 
		    variable 4)/4; 



## **3. Headers** Toda classe deve ter um header como o nome do arquivo e o propoósito.

Ex1:

/*
 * File name: arquiveName.
 * File pourpose: This file have de pourpose to be an example.
 */



4. Comentários

Todos comentários devem estar em inglês, começando com letra maíuscula. Para comentários de uma linha utilize "//", e para comentários maior que uma linha "/**/". Ex1:

//Inflate the menu

Ex2:

/*
 *Validates and set user alteration
 *to  user
 */



5. Marcadores

Quando uma parte do código precisa de refatoração. //BAD CODE Ex1:

int r = a + b  //BAD CODE

Se já foi inicializado a refatoração do código e isto ainda não foi terminado. Ex2:

//NOT FINISHED

Ex3:

funtion(param1,param2)
{
     //NOT FINISHED
}

Quando uma condicional tiver tiver um "default" que não faz nada, um marcador "NOTHING TO DO" precisa ser incluído.

Ex1:

switch (variable)
{
     case 1:
          x++;
          break;

     case 2:
          x--;
          break;
   
     default: 
          //NOTHING TO DO
    
}



6. Operações e Atribuições de Sinais

Ambos devem usar como padrão: Espaço entre palavras ou números.

Ex1:

for(int i = 0; i < idCategories.size(); i++)
{
}

Ex2:

b = c + a;

Ps: No exemplo um, note que para a operação de incremento não é utilizado espaço entre o número e o operando.

7.Javadoc

A formatação baśica do javadoc é exemplicada a baixo. Esta técnica deve ser utilizada em métodos e classes. Ex1:

/**
 * Javadoc Example
 */

Ex2:

/** Comment of one line in Javadoc */

8.Referências

Para a realização desta wiki foram utilizadas algumas técnicas de acordo com Google Java Style Guide

⚠️ **GitHub.com Fallback** ⚠️