SourceForge.net Logo
MMORPG
Massively Multiplayer Online Roleplaying Game



Konzept
Einleitung
Konzept
Die Spieler
Der hohe Rat
Zuständigkeiten
Gesetze
 
Grundlegendes
Name des Spiels
 
Realisierung
Grundlegendes
Server
Client
Richtlinien der Progr.
   
 

Richtlinien und Programmierregeln


Folgende Richtlinien müssen eingehalten werden:

Namensgebung von Variablen, Methoden, Klassen
Um eine Einheitliche Namenskonvention zu erreichen ist es notwendig sich an eine strikte Richtlinie zu halten.

  1. Nach der Ungarische Notation beginnen Variablennamen mit einem Kleinbuchstaben (Kamel-Notation), Methoden und Klassen mit einem Grossbuchstaben.
  2. Klassennamen erhalten zudem einen Präfix C für Class. (zb CTerrain, CWindow)
  3. Bei Namen die aus mehreren Wörtern zusammengesetzt worden sind, wird der Anfangsbuchstabe des Wortes gross geschrieben. (zb DrawText)
  4. Variablennamen besitzen immer einen Präfix vom Typ der Variable (zb i für Integer, d für Double). Der nächste Buchstabe wird immer gross geschrieben.
  5. Anhand der Methodennamen muss erkennbar sein, welche Funktion diese ausführt und dürfen auch keinerlei weitere unerwartete Eigenschaften besitzen. (zb. DrawText zeichnet einen Text. Nicht zulässig wäre wenn diese Funktion noch den Bildschirm vorher löscht. Ebenfalls unzulässig zb. CheckIt. Damit nicht die Frage aufkommt, was genau soll diese Methode prüfen?)
  6. Ähnlich wie bei 5 beschrieben müssen auch Variablennamen sprechend sein. Variablennamen wie iTest sind unzulässig.
  7. Namen werden immer in Einzahl und englischer Sprache geschrieben. (zb uPlayer, unzulässig uPlayers)
  8. Bei Eigenschaften wird zusätzlich ein Präfix m für modul vor dem Variablennamen gesetzt. (zb. miWindow)
  9. Defines und Makros werden grundsätzlich Gross geschreiben. Defines aus meheren Wörtern werden durch ein _ getrennt.
  10. Ausnamen: Zahlvariablen für Schleifen können auch i, j, k, usw. genannt werden
Beispiel für Klassennamen:
CTerrain, CWindow, usw.

Beispiel für Methodennamen:
DrawText, CheckPassword, usw.

Beispiel für Eigenschaften und Variablennamen:
uPlayer, sTitle, miWindow, usw.

Beispiel für Defines und Makros
GL_LIGHTING, MAX, PI, usw.

Da es bei einigen Stellen keine eindeutige Definition gibt (wie zb. b Für Byte oder Boolean) folgt hier eine Liste der Typen.


Objektorientierte Programmierung
OOP hat viele Vorteile. So können u.a. Schnittstellen schon vor der Erstellung definiert werden. Abhängigkeiten und gemeinsame Benutzung globaler Variablen, Funktionen usw. sind damit nahezu ausgeschlossen. So lassen sich auch im nachhinein ganze Klassen leicht austauschen.


Modulare Struktur
Um nicht im Chaos zu versinken ist es notwenig das Projekt in einzelne Module zu gliedern, die entweder alleine (durch Threads) oder über ein Hauptmodul gesteuert werden. Der Vorteil: Module lassen sich leicht austauschen. Es wird eine bessere Übersichtlichkeit ermöglicht.


Abhängigkeiten zwischen Modulen vermeiden
Wichtig für die flexibilität ist es, dass Module sich nicht gegenseitig Daten austauschen, sondern ein übergeordnetes Modul dies übernimmt. Würde dies nicht eingehalten, wäre ein Austausch einzelner Module nur mit viel Aufwand zu betreiben.






Valid HTML 4.01!
Valid CSS!
   
Optimized for Opera, Konqueror
forevermore-admin@lists.sourceforge.net
© Thomas Kowarsch 2003
Letzte Änderung: 01 Jan 1970 00:00:00