Examinar a qualidade do código

Concluído

A qualidade do código não deve ser medida por opiniões pessoais. Um desenvolvedor que escreve código classificaria seu próprio código altamente, mas essa não é uma maneira confiável de medir a qualidade do código. Equipes diferentes podem usar definições diferentes com base no que estão criando.

Código considerado de alta qualidade pode significar uma coisa para um desenvolvedor de software de carro e algo diferente para um desenvolvedor de aplicativos Web.

A qualidade do código é importante porque afeta a qualidade geral do software.

Um estudo sobre "Origens de Defeito de Software e Métodos de Remoção" descobriu que programadores individuais encontram menos de 50% de bugs em seu próprio software. A maioria das formas de teste encontra apenas 35% de bugs. Isso dificulta a determinação da qualidade.

Há cinco características principais a serem medidas para um código de maior qualidade:

Confiabilidade

A confiabilidade mede a probabilidade de um sistema ser executado sem falhas durante um período específico. Ela se relaciona com o número de defeitos e a disponibilidade do software. Você pode medir vários defeitos executando uma ferramenta de análise estática.

A disponibilidade do software pode ser medida usando o tempo médio entre falhas (MTBF).

As baixas contagens de defeitos são cruciais para o desenvolvimento de código confiável.

Facilidade de manutenção

A facilidade de manutenção mede como o software pode ser mantido facilmente. Ele está relacionado ao tamanho, consistência, estrutura e complexidade do código. Garantir que o código-fonte seja mantenedível depende de vários fatores, como testabilidade e compreensão.

Você não pode usar uma única métrica para garantir a facilidade de manutenção.

Algumas métricas que você pode considerar para melhorar a manutenibilidade são o número de avisos de estilo e as medidas de complexidade de Halstead.

Tanto a automação quanto os revisores humanos são importantes para o desenvolvimento de código mantenedor.

Capacidade de teste

A testabilidade mede o sucesso do software no suporte aos esforços de teste. Depende de quão bem você pode controlar, observar, isolar e automatizar testes, entre outros fatores.

A capacidade de teste pode ser medida com base em quantos casos de teste você precisa para encontrar possíveis falhas no sistema.

O tamanho e a complexidade do software podem afetar a capacidade de teste.

Portanto, a aplicação de métodos no nível do código — como complexidade ciclomática — pode ajudar você a melhorar a testabilidade do componente.

Portabilidade

A portabilidade mede a forma como o mesmo software pode ser usado em ambientes diferentes. Ela está relacionada à independência da plataforma.

Não há uma medida específica de portabilidade. Mas há várias maneiras de garantir o código portátil.

É importante testar regularmente o código em diferentes plataformas em vez de aguardar até o fim do desenvolvimento.

Também é recomendado definir os níveis de aviso do compilador para o mais alto possível e usar pelo menos dois compiladores.

Seguir um padrão de codificação também ajuda na portabilidade.

Capacidade de reutilização

A capacidade de reutilização mede se os ativos existentes— como código — podem ser usados novamente.

Os ativos são reutilizados com mais facilidade quando têm características como modularidade ou acoplamento flexível.

O número de interdependências pode medir a capacidade de reutilização.

A execução de um analisador estático pode ajudar você a identificar essas interdependências.