Project

General

Profile

Documents de normalisation des développements

Règles de codage et convention de style

  • UCC1 : ne jamais faire d'affectation dans un test de condition
  • UCC2 : ne jamais faire de switch (case) sans gérer les cas d'exceptions (else)
  • UCC3 : Une classe ne doit pas dépasser 300 LOC
  • UCC4 : Un nom de classe doit Matcher /^[A-Z][a-zA-Z0-9]*$/
  • UCC5 : la complexité cyclomatique d'un bloc de code ne doit pas dépasser 4 (exception faite des Specs)
  • UCC6 : la complexité cyclomatique d'une méthode ne doit pas dépasser 10
  • UCC7: la récupération d'une exception ne doit jamais être vide
  • UCC8 : les boucles de types for sont a proscrire, utiliser les itérateurs
  • UCC9 : Un nom de méthode doit matcher /^[_a-z<>=\[|+-\/\*`]+[_a-z0-9_<>=~@\[\]]*[=!\?]?$/
  • UCC10 : Un module ne doit pas dépasser 500 LOC
  • UCC11 : Un nom de module doit matcher /^[A-Z][a-zA-Z0-9]*$/
  • UCC12 : le nombre de paramètre d'une méthode ne doit pas dépasser 5
  • UCC13 : une méthode publique d'une classe doit passer se paramètres par un hashage d'options
  • UCC14 : les Hashages d'options des méthodes publiques doivent avoir des symboles pour clefs
  • UCC15 : une variable passée en paramètre d'une méthode doit être préfixée par _
  • UCC16 : une méthode qui renvoie true ou false doit être suffixée par ? sauf accesseur direct
  • UCC17 : une méthode qui modifie self doit être suffixé par !
  • UCC18 : Le nom d'une méthode qui accepte une liste d'arguments variantes de 1 a N, doit être pluralisée par alias

Outils

Ruby

RubyGems

Rake

Roodi

L'outils de contrôle de style et de convention de codage pour les développements en Ruby est roodi, il vérifie pour le moment :

  • UCC1 : ne jamais faire d'affectation dans un test de condition
  • UCC2 : ne jamais faire de switch (case) sans gérer les cas d'exceptions (else)
  • UCC3 : Une classe ne doit pas dépasser 300 LOC
  • UCC4 : Un nom de classe doit Matcher /^[A-Z][a-zA-Z0-9]*$/
  • UCC5 : la complexité cyclomatique d'un bloc de code ne doit pas dépasser 4 (exception faite des Specs)
  • UCC6 : la complexité cyclomatique d'une méthode ne doit pas dépasser 10
  • UCC7: la récupération d'une exception ne doit jamais être vide
  • UCC8 : les boucles de types for sont a proscrire, utiliser les itérateurs
  • UCC9 : Un nom de méthode doit matcher /^[_a-z<>=\[|+-\/\*`]+[_a-z0-9_<>=~@\[\]]*[=!\?]?$/
  • UCC10 : Un module ne doit pas dépasser 500 LOC
  • UCC11 : Un nom de module doit matcher /^[A-Z][a-zA-Z0-9]*$/
  • UCC12 : le nombre de paramètre d'une méthode ne doit pas dépasser 5

Sa configuration est :

AssignmentInConditionalCheck:
CaseMissingElseCheck:
ClassLineCountCheck:
  line_count: 300
ClassNameCheck:
  pattern: !ruby/regexp /^[A-Z][a-zA-Z0-9]*$/
#ClassVariableCheck:
CyclomaticComplexityBlockCheck:
  complexity: 4
CyclomaticComplexityMethodCheck:
  complexity: 10
EmptyRescueBodyCheck:
ForLoopCheck:
MethodLineCountCheck:
  line_count: 30
MethodNameCheck:
  pattern: !ruby/regexp /^[_a-z<>=\[|+-\/\*`]+[_a-z0-9_<>=~@\[\]]*[=!\?]?$/
# MissingForeignKeyIndexCheck:
ModuleLineCountCheck:
  line_count: 500
ModuleNameCheck:
  pattern: !ruby/regexp /^[A-Z][a-zA-Z0-9]*$/
ParameterNumberCheck:
  parameter_count: 5

elle doit être ajouter dans chaque Gem.

Bundler

Updated by Romain GEORGES over 7 years ago · 3 revisions