A lLIRE : L'indentation des sources

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 10 avril 2006 à 19:04
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 11 avril 2006 à 08:30
Salut tout le monde !

J'ai remarqué que beaucoup de sources postés sont mal ou pas indentées, pensant que c'est parce que les auteurs ne savent pas comment indenter et non parce qu'ils n'en ont pas le courage, je vous propose quelques règles (à vous de voire si ça vous va).

- Chaque boucle, bloc de condition, et tout autre bloc finissant par 'End ...' doit être indenté de la maniere suivante :
Debut
instructions
instructions
End Debut
- Ceci est valable pour les procédures.
- Les ouvertures/fermetures de fichier peuvent être indentés de la même façon.
- Une ligne de code ne doit être décalée que dans ces cas.
- La mise en évidence d'une ligne de code ne doit pas se faire par l'indentation.
- Les sauts de ligne ne remplaces pas l'indentation.
- Les sauts de lignes sont le plus souvent inutiles, preferez leurs une ligne de commentaire.
- Chaque procédure doit être séparée de la suivante par une ligne vide.
- Si un commentaire s'applique à l'ensemble d'une procédure, il doit se trouver AVANT la déclaration de celle ci et n'empeche pas la présence de la ligne vide de séparation.
- Il est souvent plus lisible de séparer les 'If Then' sans 'End If' en 2 lignes à l'aide du caractere de continuité :
If Machin Then Truc
Suite du, code
'deviens
If Machin Then _
Truc
Suite du, code
-Les commentaires peuvent ne pas suivre l'indentation.

Voila pour le moment, merci.
[;)] Flachy Joe [;)]

3 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 avril 2006 à 20:10
Ajoutons a cela l'indentation du Select Case, de cette facon :

Select Case truc
Case Machin
une action
une autre action
Case Machin2
Encore une autre action
...
End Select

De plus, personnellement, je n'indente pas les ligne de déclaration de variable, que je place toujours en tete de procédure (en VB6 du moins, car en .NET, cela peut avoir un intéret de les déclarer juste au moment de s'en servir)
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
11 avril 2006 à 00:43
J'ai un peu la même réserve mais pas pour les mêmes raisons...

Ce poste m'anène à vous rappeler que la MSDN recel des conventions de codage (du moins pour celle du VB6). C'était juste pour l'info.

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 1
11 avril 2006 à 08:30
Pas d'acord avec toi [auteurdetail.aspx?ID=143123 crenaud76] l'indentation du 'select ' de cette maniere n'a aucune raison d'être : les 'case' font parti de la commande et devrai donc être alignés avec le 'select'. De plus cette indentation n'apporte rien à la lisibilité du code, on trouve aussi facilement le 'End Select' dans les deux cas.
Pas d'accord non plus pour ne pas indenter les déclarations de variables, elle font parti de la procedure et pas de sa déclaration.

Pour le 'if then' en une ligne, vous êtes en tout cas d'accord que c'est indigeste :)

Vous pouvez oublier le point
"- Les sauts de lignes sont le plus souvent inutiles, preferez leurs une ligne de commentaire."
car ils sont en fait indispensable pour séparrer différentes actions dans une même procédure.

Enfin, je conseil d'aligner les Exit Sub et autres Exit Function, sur la déclaration de la procedure si cet exit à lieu en premiere indentation, cad. pas dans une boucle ou une condition. Par expl :

Private sub form_load()
On Error goto fin

'premiere action
machin
truc
bidule

'2d action
Select Case truc
Case machin
Youpla
Exit Sub
Case bidule
Zouinzouin
End Select
Encore quelque, chose
Exit Sub

fin:
MsgBox "Erreur"
End Sub

[;)] Flachy Joe [;)]
0
Rejoignez-nous