Convention redaction de script » Historique » Version 1
Florent Torregrosa, 27/07/2013 16:03
premier jet par rapport à la tâche de rédaction de cette convention
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 | * nom du script en anglais |
||
9 | * mettre des "-" à la place des "_" car les scripts du dossier scripts de Drupal sont nommés comme ça. |
||
10 | * mettre l'extension à la fin (exemple : .sh) : |
||
11 | > * pour avoir la coloration syntaxique automatique |
||
12 | > * Drupal se base sur les extensions pour poster les fichiers. Et s’il n’y en a pas, il refusera de le poster. |
||
13 | > * cela permet de se rappeler que l'on utilise un script |
||
14 | * faire des noms parlant et descriptif (quitte à ce qu'il soit long), exemple : |
||
15 | > * maj_d7.sh -> update-all-d7-contributed-modules.sh ou update-contributed-modules-all-d7.sh |
||
16 | > * captcha.sh -> force-all-d7-captcha-activation.sh ou force-captcha-activation-all-d7.sh |
||
17 | |||
18 | 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 : |
||
19 | * all : pour tous les sites d'une version, si non précisé sous-entend que le script n'affecte qu'un site |
||
20 | * d7 : pour la version Drupal cible du module |
||
21 | |||
22 | Ces diminutifs et acronymes doivent être mis en (début/fin ?) de nom, sauf si |
||
23 | |||
24 | h3. Renommage d'un script |
||
25 | |||
26 | En cas de renommage d'un script, il faut vérifier : |
||
27 | * les dépendances de scripts entre eux. (voir le fichier les listant) |
||
28 | * le crontab |
||
29 | |||
30 | h2. Rédaction |
||
31 | |||
32 | * 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. |
||
33 | * ne pas répéter le code, ou alors un minimum. |
||
34 | * mettre toutes les variables/fonctions communes à plusieurs scripts dans des fichiers à part qu’on importe |
||
35 | |||
36 | h3. Les commentaires |
||
37 | |||
38 | * Les commentaires sont en anglais (langage des programmeurs et pas de problème d'accent selon l'éditeur utilisé). |
||
39 | |||
40 | h3. Les variables |
||
41 | |||
42 | * les variables sont en anglais (langage des programmeurs et pas de problème d'accent selon l'éditeur utilisé). |
||
43 | * emploi des underscores |
||
44 | * 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 : |
||
45 | > * madate -> my_date -> current_date (si fait pour utiliser la date actuelle) |
||
46 | * les variables de chemin doivent être placées en début de script (plus tard factorisation) |
||
47 | |||
48 | h3. Ne pas faire |
||
49 | |||
50 | mettre son nom, la date et le commentaire qui dit ce que fait le script dans le script : |
||
51 | * la date laisse penser que le script est parfois vieux |
||
52 | * 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 |
||
53 | * ç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) |
||
54 | * le nom du script doit de lui-même indiqué ce que le script fait |
||
55 | * pour la date et les modification, il y a git |
||
56 | * 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 |
||
57 | |||
58 | h2. Plus généralement |
||
59 | |||
60 | 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 |