Was ist ein gutes Verhältnis von Klasse zu Codezeilen für objektorientierte Sprachen? [geschlossen]

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

Frage

Was ist ein gutes Verhältnis für die Anzahl Klassen zu Codezeilen für eine objektorientierte Sprache (sagen C ++, C #, Java und ihre Vorlieben)?

Viele Menschen, darunter Manager, wie die traditionelle LOC (Codezeilen) Metrik, um die Komplexität von Software zu messen, während viele hart gekochte Object Oriented Entwickler sagen LOC wertlos ist seine Klassenzahl, was zählt. Und persönlich glaube ich, dass Klassen eine vernünftige Metrik Komplexität sein können, aber dass ohne eine LOC-Metrik der tatsächliche Komplexität dieser Klassen (Menge an Poltergeister und Götter dort) ist schwer abzuschätzen.

So weiß jemand, was wahrscheinlich ein gesundes Verhältnis für einige ziemlich gut codiert Software sein?

Edit:. In diesem speziellen Fall, ich bin für ein Verhältnis der Suche nach einer Ball-Park Schätzung, wie viel Refactoring zu bestimmen, könnte den Code zu bereinigen, erforderlich

Edit:? Kennt jemand Verhältnisse für einige große OSS-Projekten wie Firefox, Apache, Webkit, etc ...

War es hilfreich?

Lösung

LOCs oder NLOCs ist nicht wirklich ein gutes Maß für die Qualität oder die Gesundheit Ihres Codes. Ich empfehle, mit NDepend 's statische Code-Analyse (für Sie guckt .net), um zu sehen, wie gut Ihre Lösung architected wird.

Ich finde, dass LOCs gute Messung ist nur bei der Methode Ebene. Das heißt, Ich mag meine Methoden im Allgemeinen auf einem Bildschirm passen (keine kleine Schriften). Andere Metriken wie zyklomatische Komplexität und Code Coverage (für Sie TDDers) zusätzlich zu Ihren Unit-Tests ein besseres Gefühl geben können, wie gesund Ihre Code-Basis ist.

Andere Tipps

Es wird sein, nicht wirklich eine gute, endgültige oder befriedigende Antwort auf diese Frage. Allerdings werde ich sagen, dass in meiner Erfahrung, die Codezeilen pro Klasse nehmen mit zunehmender Erfahrung in der objektorientierten Programmierung.

Die meisten Menschen, die nicht objektorientierte Design-Prinzipien studiert haben, neigen dazu, Klassen mit vielen, vielen Zeilen Code zu haben. Menschen mit vielen objektorientierten Erfahrung werden dazu neigen, weniger Codezeilen pro Klasse zu haben, aber werden viel mehr Klassen haben. Und natürlich werden beide umeinander beschweren: -)

.

Wenn Sie wirklich nur für eine Daumenregel suchen, dann würde ich sagen, dass jede Klasse, die möglicherweise in einer lesbaren Auflösung auf ein einziges Blatt Papier kann nicht ausgedruckt zu lang und soll überarbeitet werden. Ihre Zielmarke könnte dann in der Größenordnung von 100 bis 200 Linien aber, meiner Meinung nach, die Anzahl der Seiten-Faktor ist ein wenig leichter zu bewältigen.

Ich glaube auch fest daran, dass die Anzahl der Seiten Metrik sollte als Fakultäts Maß für Schlechtigkeit in Betracht gezogen werden, anstatt linear. Wenn es eine Zehn-Seiten-Klasse in der Codebasis, die wie es sich anfühlt, ist zumindest drei Millionen schlimmer für mich, als eine kleine, gut architected Klasse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top