|
Site |
Cours VB.net |
|
|
|
Règles de bonne programmation. |
|
|
Pour faire un code solide, éviter les bugs, avoir une maintenance facile, il faut suivre quelques règles.
Relire les chapitres :
5-11 pour faire de bonnes procédures.
5-12 pour faire de bonnes Classes
5-13 pour faire du bon code: bonnes variables
5-210 pour faire de bons commentaires et rendre le code lisible
Voici un résumé des points forts.
Séparer l'interface utilisateur et l'applicatif.
Exemple: un formulaire affiche les enregistrements d'une base de données:
Créer:
Cela facilite la maintenance: si on désire modifier l'interface, on touche au fenêtre et pas du tout à la Classe base de données.
Architecture à 3 niveaux.
Elle peut être nécessaire dans certains programmes, les 3 niveaux sont:
Exemple: Un formulaire affiche certains enregistrements d'une base de données.
Si au lieu de travailler sur une base Access, je travaille sur une base SQLServer, il suffit de réécrire la troisième couche.
Utiliser des design pattern: ce sont des 'patrons', des modèles en programmation objet.
Utiliser le typage fort.
Cela consiste à spécifier le type de données pour toute variable, en plus il faut utiliser des variables le plus typées possible.
Éviter le type 'Object'.
Le code en sera plus rapide, le compilateur interceptera des erreurs (cela évitera des erreurs à la compilation).
Forcer la déclaration des variables et les conversions explicites:
Option Explicit étant par défaut à On, toute variable utilisée doit être déclarée. Conserver cette option. Cela évite les erreurs liées aux variables mal orthographiées.
Si Option Strict est sur On, seules les conversions de type effectuées explicitement sur les variables seront autorisées. Le mettre sur On.
Voir Option Strict et Option Explicite
Utiliser des constantes ou des énumérations:
L'usage de constantes facilite les modifications.
Exemple : un programme gère des utilisateurs;:
Faire:
Créer une constante contenant le nombre maximum d'utilisateurs.
Const NombreUtilisateur= 20
Dim VariableUtilisateur (NombreUtilisateur) 'on utilise NombreUtilisateur et non 20
For i= 0 To NombreUtilisateur-1
Next i
Plutôt que:
Dim VariableUtilisateur (20)
For i= 0 To 19
Next i
Si ultérieurement on veut augmenter le nombre d'utilisateurs possibles à 50, il suffit de changer une seule ligne:
Const NombreUtilisateur= 50
Utiliser les constantes VB, c'est plus lisible:
Form1.BorderStyle=2 est à éviter
Form1.BorderStyle= vbSizable c'est mieux
Vérifier la validité des données que reçoit une Sub une Function ou une Classe
Vous pouvez être optimiste et ne pas tester les paramètres reçus par votre Sub. Les paramètres envoyés seront toujours probablement bons!! Bof un jour vous ferez une erreur, ou un autre n'aura pas compris le type de paramètre à envoyer et cela plantera!!
Donc, il faut vérifier la validité des paramètres.
On peut le faire au fur et à mesure de leur utilisation dans le code, il est préférable de faire toutes les vérifications en début de Sub.
Vérifier aussi ce que retourne la procédure.
Se méfier du passage de paramètres 'par valeur' ou par 'référence':
Par défaut les paramètres sont envoyés 'par valeur' vers une procédure. Aussi, si la variable contenant le paramètre est modifiée, cela ne modifie pas la valeur de la variable de la procédure appelante.
Si on a peur de se tromper utilisons 'ByVal' et 'ByRef' dans l'en-tête de la Sub ou de la Fonction.
Les Booléens sont des Booléens:
Utiliser une variable Integer pour stocker un Flag dont la valeur ne peut être que 'vrai' ou 'faux' et donner la valeur 0 ou -1 est à proscrire.
Faire:
Dim Flag As Boolean
Flag=True
(Utiliser uniquement True et False)
Eviter aussi d'abréger à la mode Booléens ce qui n'en est pas.
Dim x,y As Integer
If x And y then (pour tester si x et y sont = 0) est à éviter.
Faire plutôt:
If x<>0 And y <>0
Utiliser les variables Date pour stocker les dates:
Ne pas utiliser de type Double.
Dim LaDate As Date
LaDate=Now
Ne faire aucune confiance à l'utilisateur du logiciel:
Si vous demandez à l'utilisateur de saisir un entier entre 1 et 7.
Vérifier:
qu'il a tapé quelque chose!!
Qu'il a tapé une valeur numérique.
Que c'est un entier.
Que c'est supérieur à 0 et inférieur à 8.
Accorder les moindres privilèges:
Ne permettre de saisir que ce qui est valide.
|
|
|
|
|