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 1 Florent Torregrosa
3 1 Florent Torregrosa
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 1 Florent Torregrosa
5 1 Florent Torregrosa
h2. Nommage
6 1 Florent Torregrosa
7 1 Florent Torregrosa
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 3 Julien Enselme
* mettre l'extension à la fin (exemple : .sh)
12 3 Julien Enselme
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 2 Julien Enselme
 * captcha.sh -> force-all-d7-captcha-activation.sh ou force-captcha-activation-all-d7.sh
21 1 Florent Torregrosa
22 1 Florent Torregrosa
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 1 Florent Torregrosa
* all : pour tous les sites d'une version, si non précisé sous-entend que le script n'affecte qu'un site
24 1 Florent Torregrosa
* d7 : pour la version Drupal cible du module
25 1 Florent Torregrosa
26 1 Florent Torregrosa
Ces diminutifs et acronymes doivent être mis en (début/fin ?) de nom, sauf si 
27 1 Florent Torregrosa
28 1 Florent Torregrosa
h3. Renommage d'un script
29 1 Florent Torregrosa
30 1 Florent Torregrosa
En cas de renommage d'un script, il faut vérifier :
31 1 Florent Torregrosa
* les dépendances de scripts entre eux. (voir le fichier les listant)
32 1 Florent Torregrosa
* le crontab
33 1 Florent Torregrosa
34 1 Florent Torregrosa
h2. Rédaction
35 1 Florent Torregrosa
36 1 Florent Torregrosa
* 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 1 Florent Torregrosa
* ne pas répéter le code, ou alors un minimum.
38 1 Florent Torregrosa
* mettre toutes les variables/fonctions communes à plusieurs scripts dans des fichiers à part qu’on importe
39 1 Florent Torregrosa
40 1 Florent Torregrosa
h3. Les commentaires
41 1 Florent Torregrosa
42 1 Florent Torregrosa
* Les commentaires sont en anglais (langage des programmeurs et pas de problème d'accent selon l'éditeur utilisé).
43 1 Florent Torregrosa
44 1 Florent Torregrosa
h3. Les variables
45 1 Florent Torregrosa
46 1 Florent Torregrosa
* les variables sont en anglais (langage des programmeurs et pas de problème d'accent selon l'éditeur utilisé).
47 1 Florent Torregrosa
* emploi des underscores
48 1 Florent Torregrosa
* 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 1 Florent Torregrosa
54 1 Florent Torregrosa
h3. Ne pas faire
55 1 Florent Torregrosa
56 1 Florent Torregrosa
mettre son nom, la date et le commentaire qui dit ce que fait le script dans le script :
57 1 Florent Torregrosa
* la date laisse penser que le script est parfois vieux
58 1 Florent Torregrosa
* 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 1 Florent Torregrosa
* ç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 1 Florent Torregrosa
* le nom du script doit de lui-même indiqué ce que le script fait
61 1 Florent Torregrosa
* pour la date et les modification, il y a git
62 1 Florent Torregrosa
* 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 1 Florent Torregrosa
64 1 Florent Torregrosa
h2. Plus généralement
65 1 Florent Torregrosa
66 1 Florent Torregrosa
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