Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: [TOPIC] Coder proprement
PostPosted: 31 May 2009, 23:00 
Modérateur Section
User avatar

Joined: 31 Mar 2009, 18:04
Posts: 177
Location: 90n86w
Nom inspiré de l'ouvrage du même nom par Robert C. Martin.
Cette réflexion est grandement inspirée de la connaissance personnel et de plusieurs dizaines d'ouvrages, commentaires et autres écrits. Vous
avez parfaitement le droit de ne pas être en accord avec ce qui sera dit dans ce topique. Plutôt que contester ces écrits, informez nous de votre
point de vue.


1. Nomination des éléments


Good

- Explicites - révélateur des intentions : pour ne pas perdre de temps et pouvoir voir du premier coups quel est le rôle
de chaque élément. La mémorisation de ces éléments est également plus facile.

- Distincs, se rapportent a des choses différentes : cela permet entre autre a distinguer des éléments totalement
différents dont les noms peuvent par contre être très proches (getAccount(); != getAccountInfo();).

- Informatifs : on doit pouvoir tirer des informations sur l'utilité ou autre d'une simple lecture du nom d'un élément, on
dépréciera fortement les abréviations.

- Prononçables : la programmation a un aspect sociale, l'homme manie très bien la langue, pour en discuter et les
retenir plus facilement, mieux vaut nommer les éléments de sorte a ce qu'elles soient prononçables.

- Apte à des recherches : a tout moment, un programmeur peut avoir a effectuer des recherches de variables,
classes... pour simplifier ces recherches et permettre qu'elle puissent jouer leur rôle. On évitera donc des mots trop courts ou des mots courants
(de, le) que l'on peut retrouver dans beaucoup de lignes des projets.

- Courts : pour un gain de temps et de distinction, il faut adopter des noms les plus courts possible. Cependant, il vaut
mieux utiliser des noms longs respectant tous les autres critères d'un code propre plutôt que des noms courts rendant un code négligé. Il est
aussi parfois impossible d'utiliser des noms courts.

- Respectant les "classiques" et conventions : pour une boucle for, on utilise dans 99% des cas une variable que l'on
nome "i". Pour permettre une rapidité plus importante et éviter une confusion, on utilisera toujours cette expression.

- Des verbes ou groupes verbaux pour les fonctions et méthodes : les fonctions et methodes definissent des actions,
des définitions.

- Des noms ou groupes nominaux pour les classes : les classes contrairement aux fonctions ou methodes ne
définissent pas des actions, ce sont des objets..

- Respectent les conventions : les ascenseurs, mutateurs et prédicats sont toujours a utiliser avec les préfixes "get",
"set" et "is". Les noms de classes commencent toujours par une majuscule => class Ordinateur {...};. Chaque mot d'un nom de variable, fonction
ou classe commence par une majuscule (sauf la première lettre du nom) => int tempsAvantImpact = 0;.

- Être simples : la lecture du code se fait pas des programmeurs, chacun peut donc utiliser des mots du jargon
informatique. Cependant, ils doivent être simple et a la porté de tous les autres développeurs. On évitera aussi l'humour, les jeux de mots, argot,
jeux d'esprit, expressions familières et mots liés a une culture ou religion spécifique.

- Les mêmes pour les mêmes conceptes : tout comme les ascenseurs nécessitent le préfixe "get", lorsque vous
utiliser un préfixe ou mot pour un concept, gardez le jusque au bout du programme.

- Utilisent des prefixes : lorsque des noms ont plusieurs sens et qu'ils ne sont pas dans leur contexte (variables
seules...) on utilise des préfixes rappelant ce même contexte.


Not good

- Nécessite des commentaires : si un élément nécessite un commentaire, c'est que celui-ci n'est pas assez explicite
et qu'il n'informa que trop peu de son utilité.

- Utiliser des faux indices : utiliser des mots de sorte a tromper le programmeur (et vous même) ne fait que vous
ralentir dans votre tache. Si, par exemple vous nommez une variable devant représenter un groupe d'utilisateurs "usersList", vous employez un
faux indice. Le programmeur pense avoir a faire a une liste alors que cela peut être tout autre élément.

- Utiliser des noms trop proches les uns des autres : on a beaucoup de mal a faire la distinction entre plusieurs noms
dont l'ecriture est proche et surtout quand ceux la sont assez longs (ControllerForEfficientHandLingOfString !=
ControllerForEfficientHandStorageOfString).

- Utiliser des lettres proches visuellement des chiffres : il est parfois impossible après de longues heures de travail de
distinguer des lettres proches de chiffres (O, 0 ou l, 1). Pour éviter cela et éviter donc des erreurs qui peuvent être facteur de perte de temps, on
utilisera ces lettres que tres rarement ou la ou ils ont un sens dans l'ensemble (isOver(); ne sera jamais confronté a is0ver(); cea va de soit).

- Employer le type de donnée dans le nom : cela agrandit la longueur du nom. Les noms doivent être assez explicites
pour ne pas avoir a informer de leur type (string name = ""; un nom est toujours un string et donc on informera pas de son type).

- Utiliser des préfixes courants : les préfixes courants tel que "a" ou "the" sont a proscrire. De plus, un code propre
doit permettre de ne pas en utiliser (comme "m_" pour les variables) sauf "get", "set" pour les fonctions et.)

#########################################################################################################################

2. Codage de fonctions

A venir.


Top
 Profile  
 
 Post subject: Re: [TOPIC] Coder proprement
PostPosted: 27 Jun 2009, 23:57 
Membre
User avatar

Joined: 05 Apr 2009, 22:28
Posts: 61
Topique très utile qui réuni des éléments connu et d'autre nouveau (pour moi du moin =) )
Good.


Top
 Profile  
 
 Post subject: Re: [TOPIC] Coder proprement
PostPosted: 23 Jan 2012, 10:26 
Modérateur Section
User avatar

Joined: 31 Mar 2009, 15:32
Posts: 61
Une petite convention que j'utilise et qui me parait pas mal du tout,

utiliser un préfixe pour les variables passés en paramètre.

Par exemple:

Code:
public void ma_fonction(Parametre pParameter, TypeTwo pTypeTwo){

}


C'est assez utile pour savoir en un coup d'oeil si on a affaire à une variable locale ou passés en paramètre.

Tortue 974.


Top
 Profile  
 
Post new topic Reply to topic  [ 3 posts ] 


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group