Pergunta

Estou escrevendo um documento de padrões de codificação para uma equipe de cerca de 15 desenvolvedores com uma carga de projetos entre 10 e 15 projetos por ano.Entre outras seções (que posso postar aqui à medida que as chego), estou escrevendo uma seção sobre formatação de código.Então, para começar, acho que é sensato que, por qualquer motivo, estabeleçamos alguns padrões básicos e consistentes de formatação/nomeação de código.

Analisei cerca de 10 projetos escritos por esta equipe nos últimos 3 anos e estou, obviamente, encontrando uma ampla variedade de estilos.Os empreiteiros entram e saem às vezes, e às vezes até dobram o tamanho da equipe.

Estou procurando algumas sugestões de padrões de formatação e nomenclatura de código que realmente valeram a pena...mas isso também pode ser realmente justificado.Acho que a consistência e os padrões compartilhados ajudam muito a tornar o código mais sustentável ...mas há outras coisas que devo considerar ao definir esses padrões?

  • Como você alinha parênteses?Você segue as mesmas diretrizes entre parênteses ao lidar com classes, métodos, blocos try catch, instruções switch, blocos if else, etc.

  • Você alinha campos em uma coluna?Você anota/prefixa variáveis ​​privadas com um sublinhado?Você segue alguma convenção de nomenclatura para facilitar a localização de detalhes em um arquivo?Como você ordena os membros da sua classe?

E quanto a sugestões de namespaces, pacotes ou padrões de pasta/organização de código-fonte?Costumo começar com algo como:

<com|org|...>.<company>.<app>.<layer>.<function>.ClassName

Estou curioso para ver se existem outras práticas mais aceitas do que as que estou acostumado - antes de me aventurar a ditar esses padrões.Links para padrões já publicados on-line também seriam ótimos - embora eu já tenha feito um pouco disso.

Foi útil?

Solução

Primeiro encontre um formatador de código automatizado que funcione com sua linguagem.Razão:Independentemente do que o documento diga, as pessoas inevitavelmente quebrarão as regras.É muito mais fácil executar o código por meio de um formatador do que analisar detalhadamente uma revisão de código.

Se você estiver usando uma linguagem com um padrão existente (por exemplo,Java, C#), é mais fácil usá-lo, ou pelo menos começar com ele como um primeiro rascunho.A Sun pensou muito em suas regras de formatação;você também pode tirar vantagem disso.

De qualquer forma, lembre-se de que muitas pesquisas mostraram que variar coisas como a posição das chaves e o uso de espaços em branco não tem efeito mensurável na produtividade, na compreensão ou na prevalência de bugs.Apenas tendo qualquer padrão é a chave.

Outras dicas

Vindo da indústria automotiva, aqui estão alguns padrões de estilo usados ​​por razões concretas:

Sempre use colchetes em estruturas de controle e coloque-os em linhas separadas.Isso elimina problemas com pessoas adicionando código e incluindo-o ou não por engano dentro de uma estrutura de controle.

if(...)
{

}

Todas as opções/seleções têm um caso padrão.O caso padrão registra um erro se não for um caminho válido.

Pela mesma razão acima, qualquer if...elseif...as estruturas de controle DEVEM terminar com um else padrão que também registra um erro se não for um caminho válido.Uma única instrução if não exige isso.

No caso ocasional em que um loop ou estrutura de controle está intencionalmente vazio, um ponto e vírgula é sempre colocado para indicar que isso é intencional.

while(stillwaiting())
{
   ;
}

Os padrões de nomenclatura têm estilos muito diferentes para typedefs, constantes definidas, variáveis ​​globais de módulo, etc.Os nomes das variáveis ​​incluem tipo.Você pode olhar o nome e ter uma boa ideia de a qual módulo ele pertence, seu escopo e tipo.Isso facilita a detecção de erros relacionados a tipos, etc.

Existem outros, mas estes são o topo da minha cabeça.

-Adão

Vou seguir a sugestão de Jason.

Acabei de concluir um documento de padrões para uma equipe de 10 a 12 pessoas que trabalha principalmente em Perl.O documento diz para usar "o recuo do tipo Perltidy para estruturas de dados complexas". Também fornecemos a todos os exemplo de configurações de Perltidy que limpariam seu código para atender a esse padrão.Era muito claro e padrão da indústria para o idioma, então tivemos uma grande aprovação da equipe.

Ao começar a escrever este documento, pedi alguns exemplos de ótimos códigos em nosso repositório e pesquisei um pouco no Google para encontrar outros documentos de padrões que arquitetos mais inteligentes do que eu construíssem um modelo.Foi difícil ser conciso e pragmático sem entrar no território do microgerente, mas valeu muito a pena;tendo qualquer padrão é realmente fundamental.

Espero que dê certo!

Obviamente varia dependendo dos idiomas e tecnologias.Pela aparência do seu espaço de nomes de exemplo, vou adivinhar java, nesse caso http://java.sun.com/docs/codeconv/ é um bom lugar para começar.Você também pode querer ver algo como a estrutura de diretórios padrão do maven, que fará com que todos os seus projetos pareçam semelhantes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top