IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

retwas

Bonnes pratiques Delphi

Noter ce billet
par , 17/01/2017 à 16h15 (1260 Affichages)
Formater les noms
Il faut éviter d'abréger les noms des méthodes et des variables, un nom clair permet d'avoir un code plus facile à comprendre et donc à maintenir. Faire attention à la case et séparer les mots par des majuscules plutôt que des underscores.
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
MettreAJourBaseDeDonnees
// plutôt que ..
Mettre_A_Jour_Base_De_Donnees

Indentation
Pour un soucis de revue de code et de compréhension, un code indenter correctement est plus facile à lire. Nous utilisons en principe une indentation de deux ou trois caractères.
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
   FListItems    := TObjectList<TDataMessage>.Create;
   FbMailHTML    := True;

Variables
Éviter de déclarer plusieurs variables sur la même ligne:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var
   sMessage, sErreur, sInfo, sQuestion: string;

Portée des variables
Il est préférable de limiter le plus possible la portée des variables, utiliser le strict private. Si une constante est utiliser dans une classe, l'ajouter dans la partie strict private.

Si les variables sont sur une nouvelle ligne de déclaration, le code est plus simple à lire:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
var
   sMessage : string;
   sErreur  : string;
   sInfo    : string;
   sQuestion: string;

Procédures / Fonctions
En principe une fonction permet de retourner un résultat et une procédure de changer le comportement d'une classe. De ce fait une procédure peux appeler des fonctions mais le contraire n'est pas souhaitable, si un utilisateur appel une fonction il ne veut pas forcément apporter une modification sur l'objet.

Méthodes
Grouper les fonctions et les procédures, dans une classes écrire le constructeur, le destructeur, les procédures, les fonctions et les property.

Les espaces
Ajouter des espaces autour des opérateurs pour avoir un code plus clair:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
// écrire
i := iChiffre1 + iChiffre2; 
// plutôt que
i:=iChiffreUn+iChiffre2;

C'est aussi le cas pour les méthodes, ajouter un espace après les virgules , deux points : et les points virgules ; mais pas avant, préfixer les variables des méthodes par un a.
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
procedure MettreAJourBaseDeDonnees(aNomBdd: string; aTempsAttente: integer);
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var
   i: integer;
   s: string;
begin
// ...
   MettreAJourBaseDeDonnees(sNomDeMaBase, iTempAttente);

Begin / End
Il est préférable de toujours écrire les begin/end, begin est écrit sur une nouvelle ligne en minuscule.
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if bMonTest then
begin
   // ...
end;

Ecrire les blocs begin / end même pour une seule ligne de code.
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
if bMonTest then
  MettreAJourBaseDeDonnees;
 
// peux facilement devenir :
if bMonTest then
  MettreAJourBaseDeDonnees;
  LancerBackupBDD;

Quand un begin est écrit, ajouter de suite le end et écrire entre les deux.

Capitalisation
Les variables commencent par un indicateur de type, puis une majuscule.

Les mots qui commencent toujours par une majuscule:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Result
Exit
Break
True
False

et ceux qui sont toujours écrit en minuscule:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
integer
begin
end
if
for
while
repeat
until
then
do
var
const
to
else
procedure
function
contructor
destructor
finally
except

Allocation de mémoire
Détruire directement un objet qui vient d'être créé dans un try .. finally ou un destructeur.
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
// il faut créer les objets avant le try
MonObjet := TMonObjet.Create;
try
  // ...
finally
   DetruitObjet(MonObjet);
end;

Portée des uses
Si un uses peut être déplacer dans la partie implementation cela permet d'éviter les références circulaire mais aussi de garder un code propre et lisible.

Formater des chaines
Il existe la méthode Format qui permet de formater des chaines, elle évite de concaténer avec des plus (+) et de faire attention aux espaces:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
MaChaine := 'Bonjour je m''appelle ' + aPrenom + ' et j''ai ' + aAge + ' ans.';
MaChaine := Format('Bonjour je m''appelle %s et j''ai %d ans.', [aPrenom, aAge]);

Commentaires
Si le code est écrit correctement, de manière propre avec des noms de variables parlant il n'est pas forcément nécessaire de commenter son code. Si du code doit être commenter peut être qu'il n'est pas écrit de la meilleur des manières ?

En revanche il est préférable de commenter les méthodes des classes pour avoir la description lors de l’auto complétion.

Booléens
Éviter d'utiliser les booléens dans les appels des méthodes, préférer les énumérations même si c'est pour seulement deux cas possible:
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
MettreAJourBaseDeDonnees(False);

est moins parlant que :
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
type
  TTypeDataBase = (tdbDonnees, tdbFichier);
// ...
MettreAJourBaseDeDonnees(tdbFichier);

Envoyer le billet « Bonnes pratiques Delphi » dans le blog Viadeo Envoyer le billet « Bonnes pratiques Delphi » dans le blog Twitter Envoyer le billet « Bonnes pratiques Delphi » dans le blog Google Envoyer le billet « Bonnes pratiques Delphi » dans le blog Facebook Envoyer le billet « Bonnes pratiques Delphi » dans le blog Digg Envoyer le billet « Bonnes pratiques Delphi » dans le blog Delicious Envoyer le billet « Bonnes pratiques Delphi » dans le blog MySpace Envoyer le billet « Bonnes pratiques Delphi » dans le blog Yahoo

Commentaires