Quelques idées de convention de code. Le but du jeu n'est pas de mettre des règles trop restrictives, avec lesquelles on passe notre temps à se battre, mais à en mettre suffisamment pour le code reste homogène, quelque soit les contributeurs.
- Langage : essayez de tout mettre en anglais (nom de variable, commentaires, . . .), et évitez au maximum le franglais. N’hésitez pas à corriger des erreurs de langage, même si ce n’est pas votre code.
- Extensions des fichiers : .cc pour les fichiers sources, éventuellement .cpp pour les addicts à visual studio. Pour les headers, c’est .hh, et ce n’est pas négociable (les .h sont les headers du langage C). Si un header contient beaucoup de code (en inline), le mettre dans un .hxx correspondant et ajouter un include en fin du .hh.
- Nom des classes : Capitalisé, en style WikiWord, ne pas mettre préfixe (style C) pour indiquer que c’est une classe.
- Nom des méthodes/fonctions : premier mot en minuscule, les suivant captitalisé (ex : doSomeWork()).
- Nom des attributs : en_c_style_, mettre un underscore à la fin.
- Nom des variables/paramètres : en_c_style.
- Tabulations: reglez votre éditeur pour des tabulations de 2 espaces, et enregistrez toujours les tabulations comme des espaces.
- Le reste : comme il vous semble bon. Vous pouvez vous inspirer du code déjà existant.
A compléter suivant les besoins...
Un petit exemple de code :
#ifndef SWEATHER_HH_
# define SWEATHER_HH_
# include "Weather.hh"
/*! @brief Fait la pluie et le beau temps... (Untranslatable pun)
*/
class SWeather : public Weather
{
public:
SWeather();
protected:
virtual TransferableItem* clone(const std::string& class_name);
int weather_;
};
inline SWeather::SWeather()
{
Dice d6;
weather_ = d6.roll(2);
if (weather_ == 7)
MSG(1, "nice !\n");
}
[...]
