Wieviele Zeilen sollte eine Quellcodedatei höchstens haben, an welchen Richtwert sollte man sich halten?
-
Man kann ein Programm mit 100k Zeilen ja problemlos in eine einzige Datei packen, nur verliert man dadurch sehr schnell die Übersicht.
Daher würde ich mal von euch gerne wissen, ab wievielen Zeilen man darüber nachdenken sollte, den Code besser auf mehrere Dateien aufzuteilen?
-
das macht man nicht von der Zeilenlänge abhängig sondern davon wie der Code zusammengehört.
Z.b. eine Datei pro Klasse.
Manchmal ist es aber auch schön alles in einer Datei zu haben.Da gibt es keine klaren Regeln und du darfst es machen wie du willst.
-
split file.cpp schrieb:
das macht man nicht von der Zeilenlänge abhängig sondern davon wie der Code zusammengehört.
Das sehe ich nicht so, denn wenn es zu viele Zeilen sind, dann bedeutet dies in der Regel, das der Code schlecht ist.
Deswegen macht man sich ne Richtlinie die besagt, wie kurz, knapp etc. ne Funktion, Klasse usw. sein sollte und wenn man sich an diese hält, dann löst sich das Problem auch von alleine.Die Frage ist jetzt nur, welche Zeilenzahl ist die ideale Richtlinie?
Z.b. eine Datei pro Klasse.
Bei schlechtem Klassendesign wird auch eine Klasse 100k Zeilen lang.
Manchmal ist es aber auch schön alles in einer Datei zu haben.
Mehr als 2000 Zeilen sollte keine Datei enthalten, denn dann verbringt man mehr Zeit mit scrollen als einem lieb ist.
-
Codelines schrieb:
Mehr als 2000 Zeilen sollte keine Datei enthalten, denn dann verbringt man mehr Zeit mit scrollen als einem lieb ist.
Hahahaha, unter den Leuten die Warcraft3:TFT gespielt haben im Battle.net, es gab damals ein Programm, was das Hosting der Server verbessert hat (GHost und GProxy). In GHost++ hatte die Funktion der Hauptschleife mal eben so 3000 Zeilen C++ Code...
Damals als Programmieranfänger dachte ich das wäre gut, das macht man halt so...
Waren gar nicht mal so gut meine Gedankengänge, was?!
-
Man scrollt doch nicht. Man nutzt die Funktionsliste seiner IDE.
-
Hängt auch von der Klasse ab.
array erschlägt man mit einer hand vor dem frühstück. regex wird groß, sehr groß. die spielmechanik macht kleine dateien, das oberflächengehansele macht große dateien.
wobei groß bei mir eher vielleicht heißt, mehr als 500 zeilen. die meisten meiner dateien sind kleiner; manchmal passiert's aber auch und ein monster kommt heraus, obwohl die klasse nur einen zweck erfüllt.
3000 zeilen in der hauptschleife?! lol, das ist sportlich.
achja, pro öffentlicher klasse eine datei.
-
Wenn irgendeine Datei eines Projektes zu gross oder unübersichtlich wird, ist dies ein deutlicher Hinweis
über Auslagerungen wie Klassen oder Funktionssammlungen nachzudenken. Einzige Tipps:- Lesbarkeit beachten
- Getrennte Dinge in getrennte Dateien bringen
- Unabhängigkeit der Programmentwicklung anstreben: jede Datei eine unabhängige Aufgabe
-
volkard schrieb:
achja, pro öffentlicher klasse eine datei.
Echt so streng?
Auch wenn es nur kleine dumme Hilfsklassen sind, die von der Funktion ganz klar zu einer anderen Klasse dazugehören?
-
hustbaer schrieb:
volkard schrieb:
achja, pro öffentlicher klasse eine datei.
Echt so streng?
Auch wenn es nur kleine dumme Hilfsklassen sind, die von der Funktion ganz klar zu einer anderen Klasse dazugehören?Natürlich nicht ganz streng.
Manchmal eine, manchmal zwei Dateien (.hpp und .cpp, wollte das Detail hier nicht einbrigen. Dumme Hilfsklassen kann ich oft private in der großen machen oder in der .cpp leben lassen.
Traits für Foo würden schon bei Foo landen.
-
hustbaer schrieb:
volkard schrieb:
achja, pro öffentlicher klasse eine datei.
Echt so streng?
Auch wenn es nur kleine dumme Hilfsklassen sind, die von der Funktion ganz klar zu einer anderen Klasse dazugehören?In JAVA muss das so sogar gemacht werden, da ist nur eine public Klasse pro Datei erlaubt.
Wenn das in Java schon zu so einer Konvention geführt hat und mit dem Compiler durchgesetzt wird, dann wird das schon Sinn machen es auch in C++ so zu machen, obwohl es da vielleicht nicht technisch erzwungen wird.
-
@Programmierfachprofi
Nein.
-
Ich sortiere den Quellcode eines Programmes thematisch, also kommen
z.B. Algorithmen zur Verschlüßelung in eine Datei. Die main() enthält bei
mir meistenst nur Funktiomsaufrufe. Der Rest wird in anderen Dateien erledigt.0x0ERROR