O que é uma boa proporção de classe de linhas de código para linguagens orientadas a objeto? [fechadas]

StackOverflow https://stackoverflow.com/questions/186070

Pergunta

O que é é uma boa relação para as Classes numéricas para linhas de código para uma linguagem orientada a objetos (digamos C ++, C #, Java e seus gostos)?

Muitas pessoas, incluindo gestores, como o LOC tradicional (linhas de código) métricas para medir a complexidade do software, enquanto muitos desenvolvedores Object Oriented cozidos dirá LOC é inútil contar a sua classe que importa. E pessoalmente eu acredito que as aulas podem ser uma métrica mais razoável de complexidade, mas que, sem um LOC métrica a complexidade real dessas classes (quantidade de poltergeists e deuses em lá) é difícil de estimar.

Assim Alguém sabe do que é provável que seja uma relação saudável para algum software razoavelmente bem codificado?

Edit:. Neste caso particular, eu estou procurando uma razão para determinar uma estimativa bola-parque de quanto refatoração pode ser necessária para limpar o código

Edit:? Alguém sabe de índices para alguns grandes projetos de OSS como o Firefox, Apache, Webkit, etc ...

Foi útil?

Solução

LOCs ou NLOCs não são realmente uma boa medida de qualidade ou a saúde de seu código. Eu recomendo usar NDepend de análise estática de código (para você .net espreitadelas) para ver quão bem a sua solução é arquitetado.

Eu acho que LOCs é boa medida apenas no nível de método. Ou seja, eu geralmente como meus métodos para caber em uma tela (sem fontes pequenas). Outras métricas, como Cyclomatic Complexidade e cobertura de código (para você TDDers), além de seus testes de unidade pode dar uma sensação melhor para o quão saudável sua base de código é.

Outras dicas

Não há realmente vai ser um bom, resposta definitiva ou satisfatória para esta questão. No entanto, vou dizer que na minha experiência, as linhas de código por classe diminui com o aumento da experiência em programação orientada a objetos.

A maioria das pessoas que não estudaram os princípios de design orientado a objetos tendem a ter aulas com lotes e lotes de linhas de código. Pessoas com muita experiência orientada a objetos tendem a ter menos linhas de código por classe, mas terá muito mais classes. E, claro, ambos vão queixar-se uns aos outros: -).

Se você está realmente apenas à procura de uma regra de ouro, então eu diria que qualquer classe que não pode ser impresso em uma única folha de papel com uma resolução legível é possivelmente muito longo e deve ser reformulado. Sua marca de alvo poderia, então, ser da ordem de 100-200 linhas, mas, a meu ver, o número de fator de páginas é um pouco mais fácil de lidar.

Eu também acredito firmemente que o número de páginas métricas deve ser considerada como uma medida fatorial de maldade em vez de linear. Se há uma classe de página de dez na base de código, que se sente como ele é, pelo menos, três milhões vezes pior para mim do que uma pequena classe bem arquitetado.

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