O Estilo D
O Estilo D é um sonjunto de convenções de estilo para escrever programas em D. O Estilo D não é forçado pelo compilador, é puramente cosmético e uma questão de escolha. Aderir ao Estilo D, porém, tornará mais fácil para os outros trabalharem com seu código d e mais fácil para você trabalhar com código D dos outros. O Estilo D pode ser o ponto de partida para um guia de estilo de projeto D customizado para seu time de projetos.
Submissões à Phobos e outros códigos fonte em D oficiais seguirão essas regras.
Espaço em Branco
- Uma instrução por linha
- Tabulações incrementam 8 colunas.
- Cada nível de identação ser´de quatro colunas.
- Operadores são separados por espaços únicos de seus operandos.
- Duas linhas em branco separando corpos de funções.
- Uma linha em branco separando declarações de variáveis das instruções no corpo da função.
Comentários
- Use comentários // para documentar uma
única linha:
instrução; // comentário
instrução; // comentário - Use comentários de bloco para documentar um bloco
de instruções de múltiplas linhas:
/*
* comentário
* comentário
*/
instrução;
instrução; - Use comentários aninhados para comentar um
pedaço de código de amostra:
/+++++
/*
* comentário
* comentário
*/
instrução;
instrução;
+++++/
Convenções de Nomeação
- Geral
- Nomes formados pela união de múltipls
palavras deveriam ter
cada palavra diferente da primeira capitalizada. Nomes não
deverão
começar com subrinhado '_'.
int myFunc();
- Módule
- Nomes de módulos e pacoter são todos em
letras minúsculas, e
somente constém os caracteres [a..z][0..9][_]. Isso evita
problemas
quando lidando com sistemas de arquivo insensíveis ao caso.
- Módulos C
- Módules que são interfaces para
funções C cão no pacote
"c", por exemplo:
import std.c.stdio;
Nomes de módulos deveriam ser todos em letras minúsculas. - Nomes de classes, estruturas, uniões e enums
- são todos capitalizados.
class Foo;
class FooAndBar; - Nomes de funções
- Nomes de funções não
são capitalizados.
int done();
int doneProcessing(); - Nomes de contantes
- Tudo maiúsculo.
- Nomes de membros de enums
- Tudo maiúsculo.
Apelidos sem sentido
Coisas como:alias void VOID;deveriam ser evitadas.
alias int INT;
alias int* pint;
Estilo de Declaração
Já que em D as declarações são associativas à esquerda, justifique-as à esquerda:int[] x, y; // torna claro que x e y são do mesmo tipopara emfatizar suas relações. Não use o estilo C:
int** p, q; // torna claro que p e q são do mesmo tipo
int []x, y; // confuso já que y também é um int[]
int **p, q; // confuso já que q também é um int**
Sobrecarga de Operadores
Sobrecarga de operadores é uma ferramente poderosa para extender o os tipos básicos suportados pela linguagem. Mas sendo poderoso, tem grande potencial para criar código obscuro. Em particular, os operadores existentes em D tem significados convencionais, tais como '+' significar 'somas' e '<<' significar 'deslocamento à esquerda'. Sobrecarregar o operador '+' com um significado diferente de 'soma' é arbitrariamente confuso e deveria ser evitado.Notação Húngara
Apenas diga não.Documentação
Todas as declarações públicas serão documentadas no formato Ddoc.
Testes de Unidade
Tanto quanto prático, todas as funções serão exercitadas por testes de unidade usando blocos unittest imediatamente seguindo a função a ser testada. Todo caminho do código deveria ser executado ao menos uma vez, verificado pelo analisador de cobertura de código.