Documentation des anciennes bases de code
Je recommande fortement de suivre la règle de scout avec des bases de code héritées. Essayer de documenter un projet hérité indépendamment de travailler dessus ne se produira jamais.
Documentation en code
Le plus important est d’utiliser les installations de documentation dans l’environnement de développement choisi, c’est-à-dire pydoc pour python, javadoc en java ou 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 des 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 au niveau du système et de la documentation architecturale. 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 également à 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. De plus, si vous utilisez un format convivial VCS, cela signifie qu'il est facile de créer des branches, des différences et de fusionner, tout comme votre code.
Je préfère tout d’ abord , car il est facile de produire des pages html et des documents pdf à partir de celui-ci. Il est beaucoup plus convivial que LaTeX , mais peut quand même inclure des expressions mathématiques LaTeX quand vous en avez besoin.