Skip to content

Conventions de programmation et structure du projet

Andre Nguyen edited this page Jun 9, 2015 · 5 revisions

##Conventions de programmation
(1) Utiliser des espaces et non des tabulations.

Ne pas utiliser des tabulations, mais des espaces. Ça évite les problèmes de transfert entre différents IDE et éditeurs de texte comme Eclipse, CLion, gedit, etc.

1 tab = 4 espaces

(2) Attributs privés

Les attributs privés doivent être distingués avec une barre en bas ("_").

class Dummy {  
public:  
// ...  
  
private:  
int myPrivateAttribute_;  
}  

(3) Tags
Les tags du projet sont :

// TODO:  
// FIXME:  
// QUESTION:  quand on n'est pas trop certain de la stratégie à adopter
// TOTEST:  

##Structure du projet
####Namespaces
(1) Chaque noeud ROS a son propre namespace.
Comme les noeuds ROS ont des classes très similaires (par exemple : le GroundRobot de la simulation et celui du AI), on évite ainsi les confusions.

namespace elikos_ai { // ... }  
namespace elikos_simulation { // ... }  
namespace elikos_robotdetect { // ... }  
namespace elikos_localization { // ... }  

(2) Toujours utiliser les namespace d'Élikos explicitement.
Encore une fois, on veut éviter les confusions puisque de nombreuses classes sont semblables entre les noeuds ROS.

// bonne pratique  
elikos_ai::Agent* agent = new elikos_ai::Agent();  
  
// mauvaise pratique  
using namespace elikos_ai;  
Agent* agent = new Agent();  

Les autres namespaces peuvent être utilisés avec ou sans 'using'.

// ok  
using namespace std;  
vector<string> chaine();  

// ok  
std::vector<std::string> chaine();  
Clone this wiki locally