Documentation:Autres

From Gameforge Official Website

Jump to: navigation, search

Contents

Style de codage (Coding Style)

Pouquoi ?

Le but "ultime" est que si toto fait une classe et que titi n'est aucun probleme a relire le code. Cela permet d'uniformiser le code produit et d'en facilité la lecture.

C++

Le coding style est définie a partie d'expression régulière [1].


Les Fichiers

Extension
  • Classe : *.cc
  • Headers : *.hh et *.hxx (dans le cas des template on a besoin de separer en deux fichiers)
Nom de fichier

Pour ta classe TotorPoilu, on aura :

  • TotorPoilu.cc
  • TotorPoilu.hh

et si c'est une template :

  • TotorPoilu.hh
  • TotorPoilu.hxx

Classes

Nom

Reg exp : ([A-Z][a-z]*)+

cad :

  • TotorPoileu.cc --> oki
  • Totor_Poileu.cc --> ko
  • TTotorPoileu.cc --> oki
Attribue

Reg exp : m([A-Z][a-z]*)+

Attribue constant

Reg exp : m[A-Z]+(\_[A-Z]+)*

Variable locale

Reg exp : [a-z]+([A-Z][a-z]*)*

Enum

Reg exp : [A-Z]+(\_[A-Z]+)*

Méthode

Reg exp : [a-z]+([A-Z][a-z]*)*

Namespaces

Que des lettres minuscules.

Macro

Reg exp : \_\_[A-Z]*(\_[A-Z]+)*\_\_

Les accolades

Code:

if( a == b)
{
  cout << "ee" << endl;
}

Espace et tabulation

On utilise que des espaces pas de tabulation. avec une indentation de deux espaces

Exemple 1

#ifndef __DEBUG_HH__
#  define __DEBUG_HH__
...
..
.
#endif 

Exemple 2 :

namespace pimp
{
  class IdData
  {
    public:
      IdData(const IdData &id);

Entête de chaque fichier

/*
 * Copyright (c) GameForge 2006
 * 
 * Use, modification and distribution is subject to 
 * the GNU General Public License V2 or later.
 *
 * Licence : http://www.gnu.org/copyleft/gpl.html
 *
 * File          :
 * Created on    :
 * Author        :
 * 
 * Last modified :
 * Author        :
 * Description   :
 */

Pour vim [2], il existe un script qui permet de créer et updater facilement cet entête.

Personal tools