Sourcecodes eines miniSpiel
-
Angeblich schon ueber 50 Downloads aber nicht ein Kommentar dazu?
Gruß, TGGC (der kostenlose DMC Download)
-
Also was soll ich sagen... der Code ist nichts besonderes.
-
TGGC schrieb:
Hier der Link: http://bit.ly/a0pAUn
Eigentlicher Link: http://www.gm-squared.de/downloads/miniSpiel_source.zip
-
Kóyaánasqatsi schrieb:
Also was soll ich sagen... der Code ist nichts besonderes.
Hilfreich wie immer, von unserem beliebtesten Forumsmitglied.
Was mir auffällt, dass noch viel zu viel in linearer Denkweise programmiert wurde. Und die Variablennamen sind oft viel zu nichtssagend.
Wer könnte erahnen, worum es hier geht? Und das ist integraler Bestandteil der Gameschleife, zumindestens soweit ich das richtig sehe.
m_pgpActual= gpNext;
PS: Das Spiel selber kann ich leider nicht antesten, was wesentlich interessanter wäre.. Habe nur Linux
mfg, René
-
NewSoftzzz schrieb:
Wer könnte erahnen, worum es hier geht? Und das ist integraler Bestandteil der Gameschleife, zumindestens soweit ich das richtig sehe.
m_pgpActual= gpNext;
Ich habe den Code nicht gelesen, aber vermutlich wird eine globale Pointer-Variable, die auf ein derzeitig bearbeitetes Element zeigt, auf das nächste Element gesetzt. Hoffe geholfen zu haben.
TGGC bashen macht Spaß, aber eine x-beliebige isolierte Codezeile ohne jeglichen Kontext zu kritisieren, das ist dann doch ein wenig kindisch.
-
Nukularfüsiker schrieb:
Ich habe den Code nicht gelesen, aber vermutlich wird eine globale Pointer-Variable, die auf ein derzeitig bearbeitetes Element zeigt, auf das nächste Element gesetzt. Hoffe geholfen zu haben.
LOL!
Nukularfüsiker schrieb:
TGGC bashen macht Spaß, aber eine x-beliebige isolierte Codezeile ohne jeglichen Kontext zu kritisieren, das ist dann doch ein wenig kindisch.
Ich habe nur ein Beispiel für schlechte Variablennamen rausgesucht, mehr nicht.
mfg, René
-
Meinst du man sollte gp als "GamePart" dort ausschreiben? Also wenn man weiss, was der Typ der Variablen ist, dann ist IMHO klar, was diese Zuweisung bedeutet. Mir hat sich die Zeile sofort erschlossen, obwohl ich sie 6 Jahre nicht mehr gesehen habe und sie hier voellig aus dem Kontext gerissen sehe, allein weil du sagst sie ist in der Gameschleife.
Man sagte mir uebrigens, es geht auch mit Wine, also du kannst mal testen! f'`8k
Gruß, TGGC (der kostenlose DMC Download)
-
TGGC schrieb:
Meinst du man sollte gp als "GamePart" dort ausschreiben?
Jo, aber ich finde selbst GamePart schon zu nichtssagend, was ist ein GamePart und was macht GamePart->run()?
Ich finde es wichtig, sich über gute Namen Gedanken zu machen. Und nach gängigen C++ Konventionen sollte man Variablen Namen NIEMALS abkürzen außer bei so Sachen wie "html", die geläufige Abkürzungen sind.
TGGC schrieb:
Man sagte mir uebrigens, es geht auch mit Wine, also du kannst mal testen!
Ich guck mal.
mfg, René
-
NewSoftzzz schrieb:
GamePart
WTF?
-
TGGC schrieb:
Meinst du man sollte gp als "GamePart" dort ausschreiben?
Ja, definitiv.
Also wenn man weiss, was der Typ der Variablen ist, dann ist IMHO klar, was diese Zuweisung bedeutet.
Code, wo ich erstmal gucken muss was für einen Typ eine Variable hat, damit ich weiss was sie soll, ist mir ein Graus. Wenn Klassen, Variablen und Funktionen gut benannt sind, muss man sehr sehr viel seltener irgendetwas nachsehen was "weit weg" von der aktuellen Zeile ist (z.B. in einem anderen File oder in einer anderen Funktion etc.)
Mir hat sich die Zeile sofort erschlossen, obwohl ich sie 6 Jahre nicht mehr gesehen habe und sie hier voellig aus dem Kontext gerissen sehe, allein weil du sagst sie ist in der Gameschleife.
Ist jetzt nicht unbedingt etwas besonderes wenn man seinen eigenen Code versteht, oder?
-
Diese Abkuerzung war Teil unserer damaligen Codekonventionen gewesen. Heute sage viele Konventionen, das man den Typ nicht mit in den Namen schreiben soll. Meine Tools koennen auch schon seit langem den Typ anzeigen, ohne das ich weit weg schauen muesste.
Ansonsten wurde ja gefragt, wer erahnen kann, um was es geht, also kann man auf die Frage ja auch antworten.
Ich freue mich aber, das viele den Code so interessant finden, das sich so viele damit beschaeftigen. Das hatte ich urspruenglich nicht erwartet. f'`8k
Gruß, TGGC (der kostenlose DMC Download)
-
hustbaer schrieb:
TGGC schrieb:
Meinst du man sollte gp als "GamePart" dort ausschreiben?
Ja, definitiv.
Nein, definitiv nicht immer. Wenn du schon viel programmiert hast, dann bist du des Ausschreibens irgendwann ueberdruessig geworden und hast erkannt, dass es voellig OK ist, kurze Variablennamen wie diese in einem lokalen Funktionsrumpf zu vergeben. Bei statischen Variablen oder Klassenmembern kannst du dir auch ein bisschen mehr Muhe geben und groessere Namen verwenden. Andernfalls bist du mehr mit Schreiben als mit Programmieren beschaeftigt.
Edit: Um dein naechstes Argument mit IntelliSense oder sonstigen Eingabehilfen vorgezunehmen: das Lesen von langen Namen macht genauso muede.
-
endline schrieb:
Wenn du schon viel programmiert hast, dann bist du des Ausschreibens irgendwann ueberdruessig geworden und hast erkannt, dass es voellig OK ist, kurze Variablennamen wie diese [...] zu vergeben.
Ach so is das also, je länger man programmiert, desto eher darf man unleserlichen Quelltext erzeugen? Schönes elitäres Weltbild du hast.
mfg, René
-
NewSoftzzz schrieb:
endline schrieb:
Wenn du schon viel programmiert hast, dann bist du des Ausschreibens irgendwann ueberdruessig geworden und hast erkannt, dass es voellig OK ist, kurze Variablennamen wie diese [...] zu vergeben.
Ach so is das also, je länger man programmiert, desto eher darf man unleserlichen Quelltext erzeugen? Schönes elitäres Weltbild du hast.
Dein Problem ist lediglich dieses hier: gekuerzt -> unleserlich.
Beispiele:
Du schreibst in deinem Algo lieber 'identifier' statt 'id'.
Du schreibst in deinem Algo lieber 'electronicSerialNumberInHexadecimalForm' statt 'esn'.Oder noch schlimmer: Du verwendest die ungarische Notation.
Quellcode ist nun halt kein Roman.
-
endline schrieb:
Du schreibst in deinem Algo lieber 'identifier' statt 'id'.
Du schreibst in deinem Algo lieber 'electronicSerialNumberInHexadecimalForm' statt 'esn'.ID ist ne geläufige Abkürzung, völlig i.O.
Aber 'esn' sollte man mindestens 'serial' nennen, das ist nämlich keine geläufige Abkürzung. (allerdings weiß ich nicht, ob das in dem Bereich geläufig ist.. Dann wäre das natürlich okay)mfg, René
-
http://geosoft.no/development/cppstyle.html#Specific
Da runterscrollen bis:
28. Abbreviations in names should be avoided.
mfg, René
-
NewSoftzzz schrieb:
endline schrieb:
Du schreibst in deinem Algo lieber 'identifier' statt 'id'.
Du schreibst in deinem Algo lieber 'electronicSerialNumberInHexadecimalForm' statt 'esn'.ID ist ne geläufige Abkürzung, völlig i.O.
Aber 'esn' sollte man mindestens 'serial' nennen, das ist nämlich keine geläufige Abkürzung.mfg, René
Yep, in einem fremden Projekt ist dir ein Begriff/Abkuerzung dann auch gelaeufig, sobald die Bedeutung verstanden wurde. Kein Grund, jede Kleinigkeit an jeder Stelle auf Teufel komm raus auszuschreiben. 'esn' kann sich viel schneller ins Gedaechtnis (von mir aus auch fotografisches Gedaechtnis) einbrennen, sobald dir der Kontext klar ist. 'serial' dagegen hat zuviele abstrakte Bedeutungen, die sich je nach Zusammenhang aendern koennen.
-
endline schrieb:
Yep, in einem fremden Projekt ist dir ein Begriff/Abkuerzung dann auch gelaeufig, sobald die Bedeutung verstanden wurde.
Das is dann schlecht. Ist halt meine Meinung, sorry
mfg, René
-
NewSoftzzz schrieb:
http://geosoft.no/development/cppstyle.html#Specific
Da runterscrollen bis:
28. Abbreviations in names should be avoided.
mfg, René
There are two types of words to consider. First are the common words listed in a language dictionary. These must never be abbreviated. Never write:
cmd instead of command
cp instead of copy
pt instead of point
comp instead of compute
init instead of initializeSo ein Quark. Wenn ich 'cmd' lese, kann ich nicht anders als an Command/Command.exe denken.
class SomeClass {
private:
int length_;
}Vielleicht suchst du lieber eine neuere Seite. Die einen sagen lenth_, die anderen m_length, wieder weiter meinen this->length.
-
NewSoftzzz schrieb:
endline schrieb:
Yep, in einem fremden Projekt ist dir ein Begriff/Abkuerzung dann auch gelaeufig, sobald die Bedeutung verstanden wurde.
Das is dann schlecht. Ist halt meine Meinung, sorry
mfg, René
Das ist keine besondere Gabe. Um das eine Beispiel nochmal aufzugreifen: wenn in einem Projekt oft eine "electronical serial number" verwendet wird, weil sich das ganze Projekt um elektronische Seriennummern dreht, dann wird auch die Abkuerzung ESN gelaeufig. In einem lokalen Algorithmus, in dem der Variablenname oft verwendet wird, liegt die Schwierigkeit eher darin, den Algo zu verstehen, statt die Bedeutung des Namens zu erraten.