CPP-Dateien werden zu groß und unübersichtlich
-
Printkey schrieb:
Und was ist wenn die Methoden aber so groß sind das sie das file unübersichtlich machen?
Mehr als 10 Zeilen? dann passt was nicht.
Sieh es ein: du hast ein Designproblem.
streng genommen ist das alles eine funktionalität:
untersuche datei, mach was damit.*lol*
Nein. Sonst hätte ja das ganze Progamm nur eine Funktionalität: löse das Problem.
Ne, du musst spezifizieren.
Soll ich diese 4 Klasse jetzt in einer klasse (ka, "datei" evt.) zusammenfassen?
Nein. Wenn sie andere Aufgaben haben dann nicht.
wenn du 500 Zeilen code pro Klasse hast, dann hast du zuviel Code und solltest dir etwas anderes überlegen
-
Nur 10 Zeilen wirklichen Code
Vielleicht habe ich ja auch ein Designproblem, ich weiß es nicht. Vielleicht stelle ich mich auch nur komisch an, weil mir persönlich das zu unübersichtlich ist.
Aber wie soll man z.b. diese Methode kürzen:
unsigned int Check_Tolerance_Time(ifstream &playerLogfile, ofstream &convertedLogfile, unsigned int toleranz) { CTime CTime; convertedLogfile<<"Zeitüberschreitungen (angegebene Toleranz: "<<toleranz<<" Sekunden):"<<endl; convertedLogfile<<"--------------------------------------------------------------------"<<endl<<endl; for(string Read; getline(playerLogfile, Read);) { // History und Bitstatus Nachrichten auslassen if(Read.substr(51,3) != "HST" && Read.substr(55,10) != "BIT_STATUS") { CTime.Set_Read_String(Read); // Keine Zeitsynchronisation gegeben? if(CTime.Get_Time_Difference() == -1) { convertedLogfile<<Read<<endl; convertedLogfile<<"Gesendet : "<<CTime.Get_Sent_String()<<endl; convertedLogfile<<"Empfangen: "<<CTime.Get_Received_String()<<endl; convertedLogfile<<"Keine Zeitsynchronisation"<<endl<<endl; continue; } if(CTime.Get_Time_Difference() > toleranz) { convertedLogfile<<Read<<endl; convertedLogfile<<"Gesendet : "<<CTime.Get_Sent_String()<<endl; convertedLogfile<<"Empfangen: "<<CTime.Get_Received_String()<<endl; convertedLogfile<<"Differenz: "<<CTime.Get_Time_Difference()<<" Sekunden"<<endl<<endl; } } } return(1); }
Die anderen sind meist kleiner aber niemals untern 10 zeilen hardcode....
Klar, "Billigmethoden" sind klein, aber auch keine womit man analysiert:// Liefert die Sendezeit als String zurück string CTime::Get_Sent_String() { string sent; sent = m_line.substr(40,10); return(sent); }
-
unsigned int Check_Tolerance_Time(ifstream &playerLogfile, ofstream &convertedLogfile, unsigned int toleranz) { CTime CTime; // UH YEAH! Na wenn das mal gut geht?
-
Shade Of Mine schrieb:
Printkey schrieb:
Und was ist wenn die Methoden aber so groß sind das sie das file unübersichtlich machen?
Mehr als 10 Zeilen? dann passt was nicht.
Naja also "nur" 10 Zeilen ist doch nich viel
Also meine Funktion zur Erkennung der CPU und der Grafikkarte die wir in der Firma benuten ist ca. das 30 Fache von 10 Zeilen, zwar gekapselt, aber Assemblercode halt
Ich finde ein limit von 40 Zeilen gut, jedoch man sollte auch nicht zu viele Funktionen basteln, da es sonst sehr unübersichtlich wird.
-
Ungetestet, aber compilieren lässt es sich. Ich sage dir bescheid obs geht
Ich habe mir übrigens gerade einfach mal irgendeine jagged alliance 2 c datei angesehen,
über 4000 zeilen lang.
Wobei ich da aber auch gerade eine funktion gesehen hab die mit sicherheit 500 zeilen groß ist
Aber ok, gut ihr meint das soll so sein, dass gehört sich so das ist standard.
Wenn das so ist werfe ich jetzt meine Bedenken über Bord und mache es genau so, ok?
-
Aber ok, gut ihr meint das soll so sein, dass gehört sich so das ist standard.
Wer sagt das ? liest du auch was wir schreiben ?
50 Zeilen ist nen guter Anhaltspunkt, find ich ...Wenn das so ist werfe ich jetzt meine Bedenken über Bord und mache es genau so, ok?
Wenn ich Dein Projektleiter waer, und du koenntest mir keine wirklich gute Begruendung nennen ... dann wuerdest du den Rest deiner Tage in der Firma SoftwareTester spielen, und Fehlerprotokolle per Hand auswerten !!!
Dein PC wurde an die Minimalanforderungen fuer den Kunden angepasst und der C++ kompiler sofort deinstalliert/ oder nicht wieder installiert !!!Ciao ...
-
Diesmal stehe ich wohl auf der Leitung,
ihr schreibt ich hätte ein Designproblem und seit unterschiedlicher Meinung bei der länge der Methoden (bis 10, bis 50), seit euch aber einig das die Methoden zu einer Klasse in einer Datei landen.
Dann frag ich ob ich das jetzt richtig verstanden habe, weil ich es dann übernehme obwohl es mir persönlich nicht schmeckt :p
-
seid hier mit d, ich weiß
-
Sieh das mit der Zeilenzahl nicht ganz zu eng !
immer unter 10 zu bleiben, ist eh nen Problem.
100+ Zeilen sind meist zu viel.viel ist geschmackssache.
Wichtig ist, dass du und auch andere es als uebersichtlich und verstaendlich empfinden.Manche zaehlen Kommentarzeilen mit, manche schreiben gar keine im Funktions-Rumpf
Manche komprimieren ihren code sehr stark, manche schreiben ausfuehrlicher und hoffen auf die optimierung durch den compiler ...
pX ? px->machwas() : cerr << "Aerger ! "; if(px) px->machwas(); else cerr << "Aerger ! "; if(px) { px->machwas(); } else { cerr << "Aerger ! "; }
Also 50 Zeilen sind bei mir sehr relativ
Ciao ...
-
Ich hatte das so verstanden das er 10 Zeilen Hardcode meinte
Das ist imho zu wenig, dein Wert ist gut, bis zu 50 Hardcodezeilen sind in Ordnung
-
seit euch aber einig das die Methoden zu einer Klasse in einer Datei landen.
wie meinst du das ?
Die Methoden einer klasse sollten in einer Datei stehen ... klar.
Aber eine Datei kann mehrere Klassen beinhalten / sowohl definitionen(cpp) als auch deklarationen(h).
Mach ich zumindest auch ab und zu, wenn die Klassen synthaktisch eng zusammengehoeren ... und ned allzugross sind.Ciao ...