Qu'écrire dans la documentation de son projet ?

Un article de Sweetydoc.

Jump to: navigation, search

Voici un modèle pour la présentation de son module. Ce modèle n'est pas figé dans sa forme ou dans son fond et vous êtes libre de la rédaction de votre documentation. Néanmoins il essaye de couvrir l'essentiel de ce qu'une documentation doit impérativement contenir pour être efficiente.

Ce modèle peut aussi être amélioré, n'oubliez pas que tous les developpeurs peuvent l'éditer.


Sommaire

Partie I : carte d'identité

Nom : nom de code du module (exemple gesdata pour le gestionnaire de profil)

Fonction : fonction attendue du module

Ne rajoutez pas des informations qui vont facilement changer comme les membres de l'equipe ou la version actuelle, elles peuvent être trouvées ailleurs.

Dépendances : les imports réalisés par le module


Partie II : description globale

UML

Poster ici l'image de l'UML ou un lien vers celui-ci


Liste des fonctions

Liste des fonctions qui composent le module et leurs buts. A écrire même si c'est redondant avec l'UML, je rappelle que les images ne sont pas accessibles aux handicapés.

fonction(arg1, arg2=defaut, [arg-optionnel]) avec un lien hypertexte sur la description détaillée ci-dessous.


Liste des classes

Liste des classes qui composent le module et leurs buts.

Classe(arg1, arg2=defaut, [arg-optionnel]) avec un lien hypertexte sur la description détaillée ci-dessous.

Héritage : classes dont hérite la classe

Polymorphisme : méthodes de la classe qui remplacent celles héritées

But : utilité de la classe


Partie III : descritption détaillées

Fonctions

Pour chaque fonction (for x in function_list ;-) ) :

fonction(arg1, arg2=defaut, [arg-optionnel])

Accepte : le type de données (chaine, liste, tuple...) que chaque argument accepte

Processus : Ce que fait la fonction

Retourne : le contenu et le type de données que la fonction retourne (même si c'est None ou un boléen)

Exemple d'utilisation :


>>> ma_fonction(super=elle, genial=1) # petit commentaire qui va bien
retour de la fonction


Classes

Reprendre classe par classe, méthode par méthode le module :


Classe : nom de a classe dont on présente les méthodes

__init__

Description du processus d'initialisation


Ensuite pour chaque méthode :

ma_méthode(arg1, arg2=defaut, [arg-optionnel])

Accepte : le type de données (chaine, liste, tuple...) que chaque argument accepte

Processus : Ce que fait la methode

Retourne : le contenu et le type de données que la fonction retourne (même si c'ets None ou un boléen)

Exemple d'utilisation :


objet.ma_methode(super=elle, genial=1) 

# explication sur l'effet de la méthode


Partie IV : Autres fichiers

Si votre module utilise d'autres fichiers (base de données, fichier .ini pour la configuration, fichier XML...), ils doivent être décris ici.


Fichier 1

nom : nom du fichier

type : type du fichier

chemin d'accès : où trouver le fichier

utilisation : but du fichier

struture : si le fichier est un fichier texte, en décrire la structure


Partie V : How To

Explication des opérations les plus courantes qu'on peut faire du module. Illustration et exemple de ce que les autres developpeurs auront à taper pour profiter des fonctions que vous avez coder.


Pour....

But : le but de la manoeuvre (par exemple obtenir une valeur du module)

Fontion à utiliser : nom de la fonction, lien hypertexte vers sont explication précédente.



# un exemple

import mon_module

objet = class_de_mon_module()

objet.method()

# commentaire indispensable sur le résultat


Parties VI : Notes

Explications des choses à faire et ne pas faire avec le module.

Explications de certaines décisions (j'ai codé cela ainsi car je ne pouvais / voulais pas...).

Bugs connus mais non corrigés / correctibles.

Petit mot de la fin.