Obsah
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í.