Základní údaje - Konvence

Zde jsou sepisovány pravidla, která by se při vývoji měla dodržovat.

Formátování kódu

konfigurační xml soubor s nastavením formátování kódu pro eclipse::CDT

Jména identifikátorů

Jména datových typů a struktur

Všechny datové typy, struktury a promenné pojmenovaváme anglicky.

  • Jméno třídy začíná vždy velkým C, každé další počáteční písmeno je také velké.
  • Jméno struktur začína vždy velkým T, každé další počáteční písmeno je také velké.
  • Jméno enumu začíná vždy velkým E, každé další počáteční písmeno je také velké.
  • Jméno property začíná malým písmenem, každé další počáteční písmeno je velké.
// priklad tridy a property
class CServerEnvironment {
private:
  int intProperty;
};
 
// priklad struktury
struct TScriptFile;
 
// priklad enumu
enum EFourDirections;

Jména metod a funkcí

Jména metod a funkcí začínají vždy malým písmenem, každé další počáteční písmeno je velké. Jména jsou anglicky.

int myFunction(int param);
CMyClass::staticMethod(5);

Jména souborů

Všechna jména souborů v rámci projektu mohou obsahovat jen malá písmena a znaky ‘.’, ‘_’, ‘-’.

Struktura projektu

Podoba objektů

  • Všechny třídy musí být potomkem třídy CObject z modulu base.
  • Všechny třídy musí obsahovat statickou metodu getClassName, vracející přesný název třídy
  • Všechny třídy musí obsahovat metodu toString, která vypisuje hodnoty členských proměnných třídy, nebo základní informace o třídě, v krajním případě pouze název třídy (v takovém případě bude metoda zděděna z CObject a není třeba ji redeklarovat).
  • Objekty odvozené od všech tříd musí při přiřazení “=” vytvářet hluboké kopie ⇒ všechny třídy obsahující dinamické členské proměnné musí obsahovat kopírovací konstruktor a přetěžovat operátor “=”.

Podoba metod

  • Všechny parametry metod, které nejsou odvozeny od základních typů, by měly být předávany referencí.
  • Pokud víme že parametr předávaný referencí nebude v rámci metody měněn, měl by být konstantní.
  • Všechny gettery musí být konstantní metody.
  • Všechny metody, které nemění data třídy by měly být konstantní.

Flagy

  • Všechny flagy v ASIDE musí být celočíselného typu, s deklarovanými konstantami, které odpovídají jednotlivým stavům přepínače.
  • Konstanty musí být deklarovány jako statické v rámci public sekce třídy, s jejímiž metodami dané přepínače souvisí.

Personal Tools