Projet

Général

Profil

DocumentationCodeBonnesPratiques » Historique » Version 16

Emmanuel GARETTE, 18/12/2012 11:46

1 1 Emmanuel GARETTE
h1. DocumentationCodeBonnesPratiques
2 1 Emmanuel GARETTE
3 1 Emmanuel GARETTE
h2. Généralité
4 1 Emmanuel GARETTE
5 1 Emmanuel GARETTE
* La documentation technique doit être en anglais.
6 5 Gérald Schwartzmann
* Elle est placée dans les docstrings du code.
7 1 Emmanuel GARETTE
8 1 Emmanuel GARETTE
h2. Description du module
9 1 Emmanuel GARETTE
10 12 Daniel Dehennin
La docstring du module est placée en haut du fichier juste après le "shebang":https://fr.wikipedia.org/wiki/Shebang, la déclaration d’"encodage des caractères":https://fr.wikipedia.org/wiki/Codage_de_caract%C3%A8res et la licence du code.
11 2 Gwenael Remond
12 1 Emmanuel GARETTE
<pre>
13 12 Daniel Dehennin
#!/usr/bin/python
14 12 Daniel Dehennin
# -*- coding: utf-8 -*-
15 12 Daniel Dehennin
#
16 16 Emmanuel GARETTE
##########################################################################
17 16 Emmanuel GARETTE
# <nom du projet>
18 16 Emmanuel GARETTE
# Copyright © 2012 Pôle de compétences EOLE <eole@ac-dijon.fr>
19 14 Daniel Dehennin
#
20 16 Emmanuel GARETTE
# License CeCILL:
21 16 Emmanuel GARETTE
#  * in french: http://www.cecill.info/licences/Licence_CeCILL_V2-fr.html
22 16 Emmanuel GARETTE
#  * in english http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
23 16 Emmanuel GARETTE
##########################################################################
24 2 Gwenael Remond
</pre>
25 2 Gwenael Remond
26 11 Daniel Dehennin
La docstring doit contenir :
27 1 Emmanuel GARETTE
* description rapide en une phrase du module ;
28 1 Emmanuel GARETTE
* description avancée qui explique le rôle du module ;
29 1 Emmanuel GARETTE
* des exemples simples d'utilisation.
30 1 Emmanuel GARETTE
31 1 Emmanuel GARETTE
Les exemples peuvent être un prompt :
32 1 Emmanuel GARETTE
33 1 Emmanuel GARETTE
<pre>
34 1 Emmanuel GARETTE
    >>> is_locked()
35 1 Emmanuel GARETTE
    True
36 1 Emmanuel GARETTE
</pre>
37 1 Emmanuel GARETTE
38 1 Emmanuel GARETTE
ou une portion de code :
39 1 Emmanuel GARETTE
40 1 Emmanuel GARETTE
<pre>
41 1 Emmanuel GARETTE
    ::
42 1 Emmanuel GARETTE
43 1 Emmanuel GARETTE
        from toto.titi import is_locked
44 1 Emmanuel GARETTE
45 1 Emmanuel GARETTE
        toto()
46 1 Emmanuel GARETTE
        is_locked()
47 1 Emmanuel GARETTE
</pre>
48 1 Emmanuel GARETTE
49 1 Emmanuel GARETTE
h2. Docstring des méthodes
50 1 Emmanuel GARETTE
51 3 Gwenael Remond
Seules les méthodes publiques (qui ne commencent pas par "_") seront mises dans la documentation (mais les méthodes privées sont aussi à documenter).
52 1 Emmanuel GARETTE
53 1 Emmanuel GARETTE
La docstring doit contenir :
54 1 Emmanuel GARETTE
55 1 Emmanuel GARETTE
* description rapide en une phrase de la méthode ;
56 1 Emmanuel GARETTE
* si nécessaire une description avancée qui explique le rôle du module ;
57 1 Emmanuel GARETTE
* si nécessaire des exemples simples d'utilisation.
58 1 Emmanuel GARETTE
* les paramètres de la façon suivante (xxx étant le nom du paramètre et yyyyyy la description) :
59 1 Emmanuel GARETTE
60 1 Emmanuel GARETTE
<pre>
61 1 Emmanuel GARETTE
    :param xxx: yyyyyy
62 1 Emmanuel GARETTE
</pre>
63 1 Emmanuel GARETTE
64 1 Emmanuel GARETTE
Si nécessaire les valeurs de retour (yyyyyy étant la description) :
65 1 Emmanuel GARETTE
66 1 Emmanuel GARETTE
<pre>
67 1 Emmanuel GARETTE
    :return: yyyyyy
68 1 Emmanuel GARETTE
</pre>
69 1 Emmanuel GARETTE
70 4 Gwenael Remond
plus d'info sur la syntaxe des docstrings: http://sphinx-doc.org/domains.html#info-field-lists
71 4 Gwenael Remond
72 1 Emmanuel GARETTE
h2. Docstring des classes
73 1 Emmanuel GARETTE
74 10 Gwenael Remond
comme pour la docstring des modules (mais sans la licence)
75 8 Gwenael Remond
76 8 Gwenael Remond
h2. Tips
77 8 Gwenael Remond
78 8 Gwenael Remond
il est possible de faire un lien portant directement sur le redmine de deux manières :
79 8 Gwenael Remond
80 8 Gwenael Remond
<pre> 
81 8 Gwenael Remond
82 8 Gwenael Remond
:issue:`410` 
83 8 Gwenael Remond
84 8 Gwenael Remond
</pre> 
85 8 Gwenael Remond
86 8 Gwenael Remond
est un lien qui porte directement sur la demande 410
87 8 Gwenael Remond
88 8 Gwenael Remond
et
89 8 Gwenael Remond
90 8 Gwenael Remond
<pre>
91 8 Gwenael Remond
92 8 Gwenael Remond
 :eole:`/projects/creole/wiki/Lock24`
93 8 Gwenael Remond
94 8 Gwenael Remond
</pre>
95 8 Gwenael Remond
96 8 Gwenael Remond
qui est simplement un raccourci vers http://dev-eole.ac-dijon.fr/projects/creole/wiki/Lock24