Padrão de código
Back-End
Os desenvolvedores passam mais tempo lendo código fonte do que o escrevendo um. Para aumentar a produtividade do profissional, um código fácil de ser lido e entendido faz diferença.
O Clean Code aborda pontos muito relevantes para um código mais legível. Porém, há uma abordagem adicional: a Padronização de código.
A ideia é que o time não só receba um código limpo mas também um estilo de código do qual ele já está familiarizado e acostumado a lidar diariamente. Para isso, todos os desenvolvedores do time devem escrever no mesmo estilo. Estilo que será definido em um documento de boas práticas para a equipe.
Segue abaixo um template markdown de uma documentação de padrão de código.
Nomenclatura
| ELEMENTO | CLASSE GRAMATICAL | REGRA | EXEMPLO |
|---|---|---|---|
| Classe | Substantivo | PascalCase | Produto |
| Interface | Substantivo | I+PascalCase | IProduto |
| Método | Verbo | PascalCase | ListarTickers |
| Propriedade | - | PascalCase | Ticker |
| Variáveis publicas | - | camelCase | idProduto |
| Variáveis privadas | - | _+camelCase | _recebimentoTotal |
| Constantes | - | PascalCase | TituloDePagina |
Formatação
Identação & Espaçamento
{
diasUteis++; // ✅ 4 espaços
diasUteis++; // ❌ sem espaços
diasUteis++; // ❌ 2 espaços
}
Cada linha devera conter apenas uma instrução de código
❌
i++; contador++; _recebimentoTotal=0;
✅
i++;
contador++;
_recebimentoTotal=0;
Regras gerais
- Tipo numérico de valores monetários deve ser
decimal
✅private decimal faturamentoAnual;
❌private double faturamentoAnual;
❌private float faturamentoAnual; - Toda
Exceptiondeve ser logada.
Performance
- Evite o uso de
ToList(), ele faz com que todos os registros sejam carregados em memória. Prefira retornosIQueryableeIEnumerable, e só leve para memória quando necessário. - Libere os recursos que tomar, usando
Usingnas classesIDisposable(Exemplo:sqlConnetion). Prefira ousingaotry/finally. - Utilize
early returnao invés de múltiplos IFs aninhados.
Testes automatizados
- Os testes automatizados devem ser fáceis de ler, curtos e testar apenas uma coisa. Use o padrão
Arrange/Act/Assert.