Documentation en code
Le plus important est d’utiliser les installations de documentation dans l’environnement de développement choisi, ce qui signifie pydoc pour python, javadoc en java ou des commentaires xml en C #. Cela facilite la rédaction de la documentation en même temps que l’écriture du code.
Si vous comptez revenir et documenter les choses plus tard, vous ne le comprendrez peut-être pas, mais si vous le faites pendant que vous écrivez le code, alors ce qui doit être documenté sera frais dans votre esprit. C # a même la possibilité d'émettre un avertissement de compilation si la documentation XML est incomplète ou incompatible avec le code réel.
Tests en tant que documentation
Un autre aspect important est une bonne intégration et des tests unitaires.
Souvent, la documentation se concentre sur ce que les classes et les méthodes font de manière isolée, en ignorant comment elles sont utilisées ensemble pour résoudre votre problème. Les tests les mettent souvent en contexte en montrant comment ils interagissent les uns avec les autres.
De même, les tests unitaires soulignent souvent les dépendances externes de manière explicite au moyen desquelles des éléments doivent être simulés .
Je constate également que, grâce au développement piloté par les tests, j'écris un logiciel plus facile à utiliser, car je l'utilise dès le départ. Avec un bon framework de test, rendre le code plus facile à tester et à le rendre facile à utiliser est souvent la même chose.
Documentation de niveau supérieur
Enfin, il y a quoi faire à propos de la documentation au niveau du système et de l'architecture. Beaucoup préconiseraient d'écrire une telle documentation sur un wiki ou d'utiliser Word ou un autre logiciel de traitement de texte, mais pour moi, le meilleur endroit pour une telle documentation est à côté du code, dans un format de texte brut adapté au système de contrôle de version.
Comme avec la documentation intégrée au code, si vous stockez votre documentation de niveau supérieur dans votre référentiel de code, vous aurez plus de chances de la maintenir à jour. Vous bénéficiez également de l'avantage que lorsque vous extrayez la version XY du code, vous obtenez également la version XY de la documentation. En outre, si vous utilisez un format convivial VCS, cela signifie qu'il est facile de créer des branches, de comparer et de fusionner votre documentation, tout comme votre code.
J'aime beaucoup reStructuredText (rst) , car il est facile de produire à la fois des pages html et des documents pdf à l'aide de sphinx . Il est beaucoup plus convivial que LaTeX , mais peut quand même inclure des expressions mathématiques LaTeX lorsque vous en avez besoin.