Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

riCo

Treue Seele

  • »riCo« ist der Autor dieses Themas

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

11

29.10.2006, 13:25

Ich sehe das Thema ist sehr umstritten.. Es gibt verschiedene Möglichkeiten, aber alles hat so seine Vor- und Nachteile.

using namespace werde ich NICHT verwenden, da ich mir dann auch die namespaces sparen kann. Eine Engine mit 7 Klassen... Nun gut, das Klassendesign möchte ich mal sehen. Es heisst zwar manchmal ist weniger mehr, aber 7 Klassen stell ich mir recht unhandlich vor.

Es wäre beispielsweise eine Möglichkeit, in jeder Funktion mit using die notwendigen Funktionen einzubinden. Dann würde ich aber wieder die namespaces entfremden. Ich hab schon versucht kurze Namen zu wählen, aber es ist dann doch recht lang in einer Zeile, wenn man auf mehrere Dinge in der Engine zugreifen möchte. Siehe mein 1. Post.

@unsigned long
du hast immer gute Ideen und dein Programmierstyle gefällt mir. Wie handlest du das mit namespaces?


Bin für alles konstruktive zum Thema namespaces dankbar..
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

12

29.10.2006, 13:28

Ich würde es einfach so lassen wie es ist, so ist das nunmal mit namespaces ;) Ich finde die Übersichtlichkeit leidet da nicht drunter, und dank intellisense ist es auch keine große tipparbeit.

Anonymous

unregistriert

13

29.10.2006, 13:59

riCo
Also dies ist wieder einer der vielen Punkte wo Code-Stil auf "Code-Eleganz" trifft.

Ich weiß nicht, ob Du jemals Code-Style-Rules aufgesetzt hast (bei mir so gute 4 Seiten groß), wo Du Deinen eigenen Stil einheitlich definierst und an dem Du sowie alle anderen, sich bei dem Projekt zu halten haben.

Beispiel bei mir ist z. B. das Thema Namespaces. Ich habe eine Regel mindestens 3 Zeichen lang, maximal 6 Zeichen. Diabloic ist da etwas zu groß.

Wie Du sicherlich gemerkt hast, bekommt man dadurch ziemlich schnell breiten Code und man muss diesen ggf. Auslagern mit Hilfsvariablen usw, damit man diesen besser lesen kann. Nicht gerade eine schöne Art wenn man ehrlich ist.

Darum sollte man sich überlegen ob man etwas sinnvoll kürzen kann. Beispiel: Engine heißt "Vulcan X", warum wird der Namespace nicht dafür "vx" genannt, anstatt "vulcanx" bzw. "vulcan_x". Bei Dir könnte "dia" für "diabloic" gut kommen und ggf. viel Platz sparen.

Was mir aufgefallen ist. Dein DegreeToRadian ist im Utilities-Bereich. Aber hat das nicht eher was mit Mathematik zu tun? Es sind doch nichts anderes als mathematische Funktionen/Konstanten.

Wobei man sagen muss, das sowas eigentlich etwas "unsinnig" ist. Da dies eine Funktion genau wie min, max, abs usw. ist oder eine Konstante wie epsilon. Sowas sollte global verfügbar sein.

Ich habe ebenfalls beachtet, dass Du keine Wortseperatoren benutzt und C für Klassen. Das solltest Du einheitlich definieren!

Beispiel: Du machst eine Frame Per Second Klasse und nach deinem Code-Stil müsste die wie folgt lauten: "CFPS". Sieht wirklich grauen voll aus. Würdest du alles klein schreiben, C weglassen und als Wortseperator _ benutzen könnte man sie so nennen: "frame_per_second". Sieht doch wirklich ansprechender aus, oder?

Auch DegreeToRadian würde schöner aussehen: degree_to_radian. Kann man doch wirklich leichter lesen. Vorallem bei so Brocken wie: "CalculateFPSTime".

Dazu solltest Du Dir gedanken machen über die ungarische Notation. Wie Du sicherlich bemerkt hast, ist diese in C++ mehr als nur verhasst - vorallem in Zeiten moderner IDEs wie Visual Studio.

Mach Dir am Besten paar Gedanken für Deinen Code-Stil und schreib alles nieder und definiere alles. Dadurch lernt man schnell: "Hey, das ist aber blöd, da fällt mir sicherlich noch was besseres ein!" Und man überlegt sich schnell paar coole Sachen die total in den Code-Stil und in das Design passen. Auch Setzung von Klammern usw gehört da rein. ;)

Dein Code von Dir da oben würde bei mir so aussehen:

C-/C++-Quelltext

1
dia::math::matrix projection = dia::math::create_projection_matrix (degree_to_radian (90.0f), aspect, 0.1f, 100.0f);

riCo

Treue Seele

  • »riCo« ist der Autor dieses Themas

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

14

29.10.2006, 14:18

Danke für den doch recht umfangreichen Post. Ich gebe dir recht, dein Code sieht ein bisschen besser aus - wenn auch etwas ungewohnt für mich. Mein Ziel war es immer, mich an Notationen zu halten - in einigen Fällen ist es ok, in anderen wiederum nervig. Ich werde mir deinen Tip zu Herzen nehmen und mal darüber Nachdenken, was ich besser machen könnte.
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

15

29.10.2006, 15:48

Die Notation kannst du ruhig drin lassen ... auch wenn nix da das nicht so schick findet ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

16

29.10.2006, 16:08

Deviloper
Nenne mir die Notationen für:
Objekte
Instanzen
std::basic_string<T>
std::list<T>
std::map<T, X>
Iteratoren
Smart Pointer
size_t
usw.

Die gibt es nicht.

17

29.10.2006, 16:36

ich weiß ... dann leg für dich selbst fest was du unter was verstehst und schon hast du es...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

18

29.10.2006, 16:38

Deviloper
Dann gibt es aber ziemlich schnell Konflikte mit der ungarischen Notation. Und warum? Nur weil einige zu Faul sind mit dem Mauszeiger auf den Namen der Variable zu gehen und den Datentypen angezeigt zu bekommen. Außerdem: Wer einen Standard hat in seinem Code-Design, der weiß genau um was für einen Datentypen sich was handelt, dafür braucht man keine schäbbige ungarische Notation.

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

19

29.10.2006, 16:54

kloppt euch bitte nicht schon wieder über die ungarische notation :roll: ;)
ich benutzt die zwar auch nicht mehr so oft, aber manchmal hat es einfach vorteile typspezifische präfixe zu verwenden...
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

20

29.10.2006, 17:10

Einige scheinen ihren Code nicht als Werkzeug zu sehen, sondern als Offenbarung eines übernatürlichen Wesens, welches durch den Propheten Stroustroup C++ verkündet wurde.

Werbeanzeige