Nommage
=====================
Les variable
--------------------
Les variables doivent être en minuscule en [snake_case](https://www.theserverside.com/definition/Snake-case) et sans chiffre et si possible refléter le type de variable

exemple correct:
```
let nb_chat = 5; // c'est une qte alors nb
let chats = Vec<Chat>::new(); // c'est un tableau alors "s"
let is_chat = True; // C'est un booléen du coup is
```
exemple incorrect:
```
let 1chien = 1; // incorrect a cause du chiffre
let mechantChien = Chien::new(); // incorrect car CamelCase
let IS_CHIEN  = False;// incorrect car majuscule
let nb_chien = Chien::new(); //incorrect la variable s'appel nb et ne représente pas le type de variable qui est ici un instance de Chien
```
Les classes
=====================
les classe/struct doivent commencé par une majuscule et être en un mots
exemple correct:
```
struct User {}
struct Project {}
```
exemple incorrect:
```
struct user{} // incorrect a cause de la majuscule
struct ProjectNuageDePoints // incorrect car en plusieurs mots
```
Structure de code
------------------
Les variable doivent êtres autant que possible en début de fonction
```
fct main() {
  let variable_correct = 22;
  println("{}", variable_correct);
  let variable_incorrect = 35; // incorrect car non déclarré avant première action
}
```
Les variable doivent être type si le type c'est pas défini directement.
```
let tata = String::new("une chaine de caractère"); // pas besoin de spécifier le type car on voit direct que c'est une String
let toto:String; // ici on défini le type de la varible car elle n'est pas assigné directement

toto = "une chaine de caractère mais plus tard";
```
Pour les block le premier crochet toi être sur le même ligne que l'action(if, for, struct, ...)
```
if toto == True {
  //correct
}
if toto == True
{
  //incorrect
}
if toto = True
  //incorrect
```
Autre
 ---------------
 - Le nom des fonction doivent décrire que quel fait.
 - Si un block de code revient souvent on créer une fonction.
 - La longeur des ligne doivent rentrer dans l'ecrans.
 - La hauteur des fonction doivent rentrer dans l'ecrans.
 - Les variables dise a quoi elles servent(pas de toto) sauf pour i et j dans les boucle d'intération.
 - On ne saute pas des ligne inutilement. Un saut de ligne doit séparée 2 fonctionnement ex: déclaration des variable "\n" utilisation de celle si
 - On ne garde les commentaires de code que si il a vocation a être décommenté.
 - Les commentaires peuvent être intéressant si le code être trop complexe a lire (ex: un calcul mathématique) mais il n'est pas obligatoire il faut pensé a réécrire le code pour le rendre plus simple plutôt que de faire des truc complexe avec un commentaire.
