Projet

Général

Profil

Convention redaction de script » Historique » Version 3

Julien Enselme, 27/07/2013 16:49

1 1 Florent Torregrosa
h1. Convention rédaction de script
2
3
Auparavant les scripts n'étaient pas rédigés suivant une convention commune à chacun. Ce qui fait que l'entretien de ces derniers pouvait se révéler compliqué. Le but de cette convention est d'harmoniser l'écriture des scripts afin de les rendre plus lisibles, et plus facile à entretenir.
4
5
h2. Nommage
6
7
Pour les noms de scripts :
8 3 Julien Enselme
9 1 Florent Torregrosa
* nom du script en anglais
10 3 Julien Enselme
* mettre des @-@ à la place des @_@ car les scripts du dossier scripts de Drupal sont nommés comme ça.
11
* mettre l'extension à la fin (exemple : .sh)
12
13 2 Julien Enselme
 * pour avoir la coloration syntaxique automatique
14 1 Florent Torregrosa
 * Drupal se base sur les extensions pour poster les fichiers. Et s’il n’y en a pas, il refusera de le poster.
15 2 Julien Enselme
 * cela permet de se rappeler que l'on utilise un script
16 3 Julien Enselme
17 2 Julien Enselme
* faire des noms parlant et descriptif (quitte à ce qu'il soit long), exemple :
18 3 Julien Enselme
19 2 Julien Enselme
 * maj_d7.sh -> update-all-d7-contributed-modules.sh ou update-contributed-modules-all-d7.sh
20
 * captcha.sh -> force-all-d7-captcha-activation.sh ou force-captcha-activation-all-d7.sh
21 1 Florent Torregrosa
22
Des noms de scripts avec des diminutifs de noms ou des acronymes peuvent être utilisés mais ils doivent être documentés et il faut en informer l'équipe, exemple :
23
* all : pour tous les sites d'une version, si non précisé sous-entend que le script n'affecte qu'un site
24
* d7 : pour la version Drupal cible du module
25
26
Ces diminutifs et acronymes doivent être mis en (début/fin ?) de nom, sauf si 
27
28
h3. Renommage d'un script
29
30
En cas de renommage d'un script, il faut vérifier :
31
* les dépendances de scripts entre eux. (voir le fichier les listant)
32
* le crontab
33
34
h2. Rédaction
35
36
* une ligne = une action, si une ligne fait plus qu'une action cela devient dur à lire. Si la ligne a vraiment besoin de faire plus qu'une action, mettre un commentaire avant.
37
* ne pas répéter le code, ou alors un minimum.
38
* mettre toutes les variables/fonctions communes à plusieurs scripts dans des fichiers à part qu’on importe
39
40
h3. Les commentaires
41
42
* Les commentaires sont en anglais (langage des programmeurs et pas de problème d'accent selon l'éditeur utilisé).
43
44
h3. Les variables
45
46
* les variables sont en anglais (langage des programmeurs et pas de problème d'accent selon l'éditeur utilisé).
47
* emploi des underscores
48
* ne pas avoir peur de donner des noms longs aux variables, il faut que le lecteur sache spontanément en lisant le nom de la variable, son type et son utilité, exemple :
49 3 Julien Enselme
50 1 Florent Torregrosa
 * madate -> my_date -> current_date (si fait pour utiliser la date actuelle)
51 3 Julien Enselme
52 1 Florent Torregrosa
* les variables de chemin doivent être placées en début de script (plus tard factorisation)
53
54
h3. Ne pas faire
55
56
mettre son nom, la date et le commentaire qui dit ce que fait le script dans le script :
57
* la date laisse penser que le script est parfois vieux
58
* comme on a pas envie de modifier cet en-tête, résultat le commentaire d'explication de ce que fait le script n'est pas mis à jour
59
* ça donne l'impression que le script appartient à cette personne et ne donne pas envie de le modifier (on peut s'imaginer que c'est le script de la personne et que donc c'est à elle à l'entretenir)
60
* le nom du script doit de lui-même indiqué ce que le script fait
61
* pour la date et les modification, il y a git
62
* pour la reconnaissance du travail des personnes -> type de contenus "membre" sur default et/ou s'il le faut une page dédiée aux contributions de chacun sur default
63
64
h2. Plus généralement
65
66
Plus généralement, suivre le clean code : http://www.e-reading-lib.com/bookreader.php/134601/Clean_Code_-_A_Handbook_of_Agile_Software_Craftsmanship.pdf