-
Notifications
You must be signed in to change notification settings - Fork 1
Home
#Tem Remédio Aí - Folha de estilo
-
Convenções de nomenclatura
-
Indentação
-
Organização dos arquivos
3.1 Arquivos de origem Java
3.1.1 Começando Comentários
3.1.2 Pacotes e Importação
-
Comentários
4.1 Bloco Comentários
4.2 Comentários em linha única
4.3 Comentários finais
4.4 Comentários no fim da linha
4.5 Comentários de documentação
-
Declarações
5.1 Número por linha
5.2 Inicialização
5.3 Colocação
5.4 Classe e Interface de declarações
-
Instruções
6.1 Demonstrações Simples
6.2 Instruções Compostas
6.3 Return
6.4 If, if-else, if else-if else
6.5 Instruções for
6.6 Instruções while
6.7 Instruções de-while
6.8 Instruções switch
6.9 Instruções try-catch
-
Espaços em branco
7.1 Linhas em branco
7.2 Espaços em Branco
Convenções de nomenclatura tornam os programas mais compreensíveis, tornando-os mais fáceis de ler. Eles também podem dar informação sobre a função de identificador, por exemplo, quando quer se tratar de uma constante, pacote, ou classe que podem ser úteis para a compreensão do código.
| DENTIFICAÇÃO DE TIPO | REGRAS DE NOMENCLATURA | EXEMPLOS |
|---|---|---|
| Packages | O prefixo do nome de um pacote único é sempre escrito em letras ASCII todas minúsculas e deve ser um dos nomes de domínio de nível superior, atualmente com, edu, gov, mil, net, org, ou um dos Inglês códigos de duas letras identificar os países, conforme especificado na norma ISO 3166 de 1981. | package com.gppmds.tra.temremdioa.controller; package com.gppmds.tra.temremdioa.model; |
| Classes | Os nomes de classe devem ser substantivos, em CamelCase com a primeira letra maiúscula. Tente manter seus nomes de classe simples e descritivo. Evite siglas e abreviaturas (a menos que a abreviatura é muito mais usado do que a forma longa). | ParseObject { |
| Interfaces | Nomes de interface devem ser capitalizados como nomes de classe. | Interface RasterDelegate; interface de Armazenamento; |
| Methods | Os métodos devem ser verbos, em camelCase com a primeira letra minúscula. | getMedicineSESCode(); setMedicineSESCode(); |
| Variables | Exceto para as variáveis, todas as instâncias, classe e constantes de classe estão em camelCase com uma primeira letra minúscula. Os nomes das variáveis não devem começar com sublinhado _ ou sinal de dólar $. O nome das variáveis deve ser curto, mas significativo. Os nomes comuns para variáveis temporárias são i, j, k, m, n para inteiros; c, d, e para caracteres. | int finalHeight; int i; CardListAdapterMedicine adapter; List filterList; |
| Constants | Os nomes de variáveis declaradas constantes de classe e de constantes ANSI devem ser todas as letras maiúsculas, com palavras separadas por sublinhados ("_"). | static final int static final int MIN_WIDTH = 4; static final int MAX_WIDTH = 999; static final int GET_THE_CPU = 1; |
- O recuo deve ter 4 espaços em branco ou um “tab” de 4 espaços;
- Antes e depois de operadores matemáticos ( +, -, *, /, % ), lógicos ( &&, ||, ==, !=, <=, >=, >, < ) e atribuições ( = ) é obrigatório usar 1 espaço em branco;
- Em operações de atribuição ++ e --, não é necessário um espaço em branco entre o atributo e o operador;
- Antes e depois de “{ }” é obrigatório a adição de 1 espaço;
- Após abrir “(“ e antes de fechar “)” não é necessário um espaço em branco;
- Depois do nome de método, é obrigatório o uso de “( )” e não é necessária a separação entre o nome e o parêntese;
- Após if, for, while é obrigatório a inclusão de 1 espaço em branco.
Um arquivo consiste de seções que devem ser separados por linhas em branco e um comentário opcional que identifica cada seção.
Arquivos de comprimento superior a 2000 linhas são complicados e devem ser evitados.
Cada arquivo de origem Java contém uma única classe pública ou interface. Quando as classes privadas e interfaces estão associados a uma classe pública, você pode colocá-los no mesmo arquivo de origem como a classe pública. A classe pública deve ser a primeira classe ou interface no arquivo. Os arquivos de origem Java devem ter a seguinte ordenação:
- Começando comentários;
- Pacote e declarações de importação;
- Declarações de classe e de interface.
Todos os arquivos de origem deve começar com um comentário c-style que lista o nome da classe, informações sobre a versão, a data eo aviso de direitos autorais:
Exemplo:
/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/A primeira linha não-comentário da maioria dos arquivos de origem Java é uma declaração pacote. Depois disso, as declarações de importação podem seguir. Por exemplo:
Exemplo:
package com.gppmds.tra.temremdioa.model;
import com.parse.ParseClassName;
import com.parse.ParseObject;
import com.parse.ParseQuery;Programas em Java podem ter dois tipos de comentários: comentários de implementação e comentários de documentação. Os comentários de implementação são aqueles encontrados em C ++, que são delimitados por /*...*/, e //. Os comentários de documentação (conhecido como "comentários doc") são Java-somente, e são delimitadas por /**...*/.
Comentários de documentação podem ser extraídos para arquivos HTML usando a ferramenta javadoc
Os comentários de implementação são destinadas para comentar a código ou para comentários sobre a implementação particular. Comentários de documentação são destinadas a descrever a especificação do código, de uma perspectiva livre de implementação. para ser lido por desenvolvedores que pode não necessariamente têm o código-fonte em mãos.Os comentários devem ser usados para dar uma visão geral do código e fornecer informações adicionais que não está prontamente disponível no próprio código. Os comentários devem conter apenas informações que é relevante para a leitura e compreensão do programa. Por exemplo, informações sobre como o pacote correspondente é construída ou em qual diretório ele reside não deve ser incluído como um comentário.
Nota: A frequência dos comentários às vezes reflete má qualidade do código. Quando você se sentir compelido a adicionar um comentário, considere reescrever o código para torná-lo mais claro.
- Comentários não devem ser colocados em grandes caixas desenhadas com asteriscos ou outros caracteres;
- Comentários nunca deve incluir caracteres especiais, como de avanço e de retrocesso;
Os programas podem ter quatro estilos de comentários de implementação: bloco, de uma única linha, à direita, e de fim-de-linha.
Comentários de bloco são usados para fornecer descrições de arquivos, métodos, estruturas de dados e algoritmos. Comentários de bloco pode ser utilizada no início de cada ficheiro e antes de cada método. Eles também podem ser utilizados em outros locais, tais como dentro de métodos. Comentários de bloco dentro de uma função ou método deve ser recuado para o mesmo nível que o código que descrevem.
- Um bloco de comentário deve ser precedida por uma linha em branco para separá-lo do resto do código.
Exemplo:
// Medicine.java to define Remedio
// Used to get data of medicine from ParseComentários curtos podem aparecer em uma única linha recuado ao nível do código que se segue. Se um comentário não pode ser escrito em uma única linha, ele deve seguir o bloco de comentário formato. Um comentário de uma única linha deve ser precedida por uma linha em branco. Aqui está um exemplo de um comentário de uma única linha no código Java:
Exemplo:
// Obtain the SupportMapFragment and get notified when the map is ready to be used
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);Comentários muito curtos podem aparecer na mesma linha que o código que descrevem, mas deve ser deslocado longe o suficiente para separá-los a partir das declarações. Se mais de um breve comentário aparece em um pedaço de código, todos eles devem ser recuado para a mesma configuração. Aqui está um exemplo de um comentário à direita no código Java:
Exemplo:
if (a == 2) {
return TRUE; // special case
} else {
return isPrime(a); // works only for odd
}O “//” delimitador de comentário pode comentar uma linha completa ou apenas uma linha parcial. Ele deve ser usado em várias linhas consecutivas para comentários de texto e ele pode ser utilizado em várias linhas consecutivas para comentar a secções de código. Exemplos:
Exemplo:
if (foo > 1) {
// Do a double-flip.
...
}
else {
return false; // Explain why here.
}
//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}Comentários de documentação descrevem classes Java, interfaces, construtores, métodos e campos. Cada comentário doc é definido dentro dos delimitadores de comentários /**...*/, com um comentário por classe, interface ou membro. Este comentário deve aparecer imediatamente antes da declaração:
Exemplo:
/**
* getMedicineSESCode get the medicine code in "Secretaria de Estado de Saúde"
* @return string representing code of medicine
*/Observe que as classes de nível superior e interfaces não são recuadas, enquanto os seus membros são. A primeira linha de comentário doc (/ **) para as classes e interfaces não é recuado; subsequentes doc linhas de comentário, cada um tem um espaço de recuo (para alinhar verticalmente os asteriscos). Membros, incluindo construtores, tem 4 espaços para a primeira linha de comentário doc e 5 lugares seguintes.
Se você precisa dar informações sobre uma classe, interface, variável ou método que não é apropriado para a documentação, use um bloco de comentário implementação (ver seção 5.1) ou de linha única (ver seção 5.2) comentário imediatamente após a declaração. Por exemplo, detalhes sobre a implementação de uma classe deve ir em tal comentário em bloco aplicação com base na declaração de classe, não no comentário de classe doc.
Comentários de documentação não deve ser posicionada dentro de um bloco método ou construtor definição, porque a documentação associados Java comenta com a primeira declaração após o comentário.
Uma declaração por linha é recomendado, uma vez que incentiva a comentar. Não coloque tipos diferentes na mesma linha.
Tente inicializar variáveis locais onde eles são declarados. A única razão para não inicializar uma variável onde é declarada é se o valor inicial depende de alguma computação ocorrendo em primeiro lugar.
Exemplo:
int finalHeight = expandLayout.getHeight();
int value = (Integer) valueAnimator.getAnimatedValue();
int finalHeight, value; // EVITE Coloque declarações apenas no início de blocos. (Um bloco é qualquer código entre chaves "{" e "}".) Não espere para declarar variáveis até a sua primeira utilização; pode confundir o programador incautos e dificultar a portabilidade de código dentro do escopo.
Exemplo:
if(constraint != null && constraint.length() > 0) {
constraint = constraint.toString().toUpperCase();
List<Medicine> filteredMedicines = new ArrayList<>();
for (int i=0;i<filterList.size();i++) {
if(filterList.get(i).getMedicineDescription().toUpperCase().contains(constraint)) {
filteredMedicines.add(filterList.get(i));
}
}
results.count = filteredMedicines.size();
results.values = filteredMedicines;
} else {
results.count = filterList.size();
results.values = filterList;
}Ao codificar as classes e interfaces Java, as seguintes regras de formatação devem ser seguidas:
- Não há espaço entre um nome do método e o parêntese "(" começando sua lista de parâmetros;
- Os métodos são separados por uma linha em branco;
- Abrir chave "{" aparece no final da mesma linha que o comando de declaração;
- Chave de fechamento "}" inicia uma linha por si só recuado para coincidir com a sua declaração de abertura correspondente, exceto quando é uma declaração nula a "}" deve aparecer imediatamente após o "{".
Exemplo:
public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
}
}Cada linha deve conter no máximo um comunicado.
Exemplo:
argv ++; // correto
argc--; // correto
argv ++; argc--; // EVITAR!- Instruções compostas são declarações que contêm listas de instruções entre chaves "{ }";
- As demonstrações fechados deve ser recuado um nível mais do que a instrução composta;
- A chave de abertura deve estar na extremidade da linha que começa a instrução composto; a chave de fechamento deve começar uma linha e ser recuado para o início da instrução composta;
- As chaves são usadas em torno de todas as declarações, até mesmo declarações individuais, quando eles fazem parte de uma estrutura de controle, como uma instrução “if-else” ou “for”.
A instrução de return com um valor não deve usar parênteses, a menos que eles fazem o valor de retorno mais evidente de alguma forma.
Exemplo:
return null;
return filter;
return super.onOptionsItemSelected(item);As instruções if-else devem ter as seguintes formas:
Exemplo:
if (condition) {
statements;
}
if (condition) {
statements;
} else {
statements;
}
if (condition) {
statements;
} else if (condition) {
statements;
} else {
statements;
}
if (condition) // EVITE OMITIR AS CHAVES { }
statement;Exemplo:
if (expandLayout.getVisibility() == View.GONE) {
Log.i("LOG", "Expand Click");
expand();
} else {
Log.i("LOG", "Collapse Click");
collapse();
}- Comportamento default (nothing to do):
Exemplo:
if(filter == null) {
filter = new FilterSearchMedicine(filterDataMedicine, this );
} else {
// Nothing to do
}A instrução for deve ter a seguinte forma:
Exemplo:
for(int i = 0; i < attentionLevelFilters.length; i++) {
Log.i("CLAUS WHERE", "Nível de atenção da UBS " + i + ": " + attentionLevelFilters[i]);
}A instrução while deve ter a seguinte forma:
Exemplo:
while (condition) {
statements;
}A instrução do-while deve ter a seguinte forma:
Exemplo:
do {
statements;
} while (condition);A instrução switch deve ter a seguinte forma:
Exemplo:
switch (position) {
case 0:
return "Remédio";
case 1:
return "UBS";
}- Comportamento default (nothing to do):
Exemplo:
switch (item.getItemId()) {
case R.id.action_settings:
Toast.makeText(this, R.string.action_settings, Toast.LENGTH_LONG).show();
break;
case R.id.action_about:
Intent aboutActivity = new Intent(this, AboutActivity.class);
startActivity(aboutActivity);
default:
// Nothing to do
break;
}A instrução try-catch deve ter a seguinte forma:
Exemplo:
try {
medicines = queryMedicine.find();
adapter = new CardListAdapterMedicine(MedicineFragment.this.getContext(), medicines);
recyclerView.setAdapter( adapter );
} catch (ParseException e) {
e.printStackTrace();
}A instrução try-catch pode também ser seguido por, finally, que executa independentemente de haver ou não o bloco try foi concluída com êxito.
Exemplo:
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}As linhas em branco melhoram a legibilidade desencadeando seções de código que são logicamente relacionados. Duas linhas em branco devem sempre ser utilizadas nas seguintes circunstâncias:
- Entre seções de um arquivo de origem
- Entre as definições de classe e de interface
Uma linha em branco deve sempre ser utilizada nas seguintes circunstâncias:
- Entre os métodos
- Entre as variáveis locais em um método e em sua primeira declaração
- Antes de um bloco ou de linha única de comentário
- Entre seções lógicas dentro de um método para melhorar a legibilidade
Os espaços em branco deve ser usado nos seguintes casos:
- Uma palavra-chave, seguido por um parêntesis devem ser separados por um espaço.
Exemplo:
for (int i = 0; i < filterList.size(); i++) {
...
}- Um espaço em branco deve aparecer após vírgulas na lista de argumentos.
- Todos os operadores binários, exceto “.” devem ser separadas dos seus operandos por espaços. Os espaços em branco nunca devem separar operadores, incremento ("++") e decremento ("--") de seus operandos. Exemplo:
Exemplo:
a += c + d;
a = (a + b) / (c * d);
while (d++ = s++) {
n++;
}