Je veux documenter mon code de telle sorte qu'il y ait un minimum de besoin de lire et de parcourir le code à nouveau des mois plus tard.
Je sais qu'il existe différents types de documentation (en code source et extérieur, diagrammes de séquence, etc.).
Je veux juste savoir quel est un moyen efficace de documenter mon code afin que, lorsque quelques mois plus tard, je veux voir mon code, je passe moins de temps à lire le code et à comprendre le flux de code.
Réponses:
Je dois admettre que je ne suis pas d'accord avec certaines des choses que les autres réponses recommandaient, alors je vais jeter mes deux cents;
commentaires
La documentation est extrêmement utile pour les étrangers qui lisent votre code. Habituellement, beaucoup de choses ne sont pas suffisamment verbeuses pour être lues et comprises immédiatement, et vous devez ensuite expliquer ce que vous faites.
Edit : la discussion dans la section commentaire a souligné quelque chose de bien - les commentaires excessifs se font généralement lors de l'écriture de mauvais code.
Commenter votre travail doit être précis et minimal, mais, à mon avis, doit certainement être présent. Au moins un commentaire pour 15 lignes de code. Par exemple, au-dessus des blocs sur le code, ajoutez une ligne sur ce que vous faites:
Des commentaires minimaux qui expliquent pourquoi et ce que vous faites sont très utiles tout au long du code. Je ne suis pas d'accord avec la réponse qui dit
Plusieurs fois, gracieusement, un bon code est documenté. Il est vrai que les mauvais programmeurs voient leur documentation comme "D'accord, mon code est mauvais, ajoutons quelques phrases pour le rendre plus clair".
Oui, et bien que cela se produise souvent, il est également vrai que les bons programmeurs qui écrivent du code propre veulent également s'assurer qu'ils reviennent à leur code et comprennent pourquoi ils veulent que leur fonction se comporte comme ça, ou pourquoi en ont-ils besoin ligne qui semble un peu redondante, etc ...
Oui, des commentaires qui expliquent des choses évidentes, des commentaires qui ne sont pas clairs, des commentaires qui ont juste été rassemblés pour s'assurer que "ce code est documenté, oui, peu importe", sont une odeur de code. Ils rendent la lecture du code plus difficile et irritante. (Ajout d'un exemple ci-dessous)
Mais les commentaires qui correspondent aux normes, expliquent le pourquoi et non le comment, et répondent aux bonnes questions , sont très très ( très ) utiles.
Commentaires en ligne
Une chose que vous ne devriez PAS (et si je pouvais écrire plus gros, je le ferais), c'est d'écrire vos commentaires sur la même ligne du code. Cela rend les commentaires très spécifiques à la ligne, ce qui manque complètement l'objectif de commenter votre code.
Par exemple, de mauvais commentaires en ligne:
Serait beaucoup plus facile à lire et à comprendre ce code sans les commentaires, qui le rendent désordonné et illisible.
Au lieu de cela, les commentaires à l'intérieur de votre code doivent être placés au-dessus des blocs de code et répondre aux questions importantes qui peuvent survenir lors de la lecture du bloc de code.
Beaucoup plus clair, non? Maintenant, vous savez également que vous devez utiliser la
login()
fonction et fournir les paramètres àsend_mail()
tout ce que vous avez utilisé. Aide un peu, mais il manque encore une chose.Documentation fonction
A été largement discuté. Vous devez toujours faire savoir à vos lecteurs en quoi consiste votre fonction, pourquoi et ce qu'elle fait. Comment cela fait-il, cela n'appartient pas à la documentation, mais peut-être aux notes de bas de page de la fonction.
Vous devez décrire clairement ce que vous attendez de vos paramètres et si vous souhaitez qu'ils soient obtenus / créés dans une méthode spécifique. Vous devez déclarer ce que votre fonction doit renvoyer, son utilisation, etc.
Encore une fois, c'est mon opinion et ma méthodologie lors de l'écriture de mon code. Non seulement ceux-là, mais ce ne sont que quelques-unes des choses sur lesquelles je ne suis pas d'accord avec les autres réponses. Oh, et bien sûr, non seulement les commentaires lisent votre code, mais votre code lui-même. Écrivez du code propre, compréhensible et maintenable . Pensez à votre avenir en codant ;-)
la source
OMI, la meilleure documentation est celle dont vous n'avez pas réellement besoin. Je déteste également écrire de la documentation et des commentaires.
Cela étant dit:
n
, mais à la placenumberOfItemsFound
par exemple.la source
numberOfItemsFound
est assez verbeux cependant; trop verbeux est également un problème.Traitez votre code comme de la documentation
Votre code est votre documentation principale. Il décrit précisément ce que l'application, la bibliothèque ou tout ce qui en résulte fait réellement. En tant que tel, toute tentative d'accélérer la compréhension de ce code doit commencer par le code lui-même.
Il y a beaucoup écrit sur la façon d'écrire du code lisible, mais certains des points clés sont:
n
c'est bon pour une boucle, des noms descriptifs plus longs sont nécessaires pour les éléments avec une plus grande portée),UpdtTbl
avec un commentaire expliquant qu'il met à jour le tableau avec les règles fournies lorsqu'ilUpdateTableContentsWithSuppliedRules
peut être utilisé comme nom,Améliorez la lecture du code
La lecture du code, quelle que soit sa simplicité, est une compétence acquise. Personne n'est naturellement bon en lecture de code. Il faut de la pratique; beaucoup de pratique. Donc, par exemple, allez dans Github ou autre et lisez le code des bibliothèques que vous utilisez, plutôt que de simplement utiliser ces bibliothèques. Trouvez le code pour le lire et le lire.
Les commentaires sont une odeur de code
Ce n'est qu'alors que nous arrivons à d'autres types de documentation. Tout d'abord, comme indiqué précédemment, évitez les commentaires. Si je tombe sur du code contenant des commentaires, je me prépare au pire: le code est susceptible d'être mauvais, et pour être honnête, les commentaires sont également susceptibles d'être mauvais. Il est peu probable qu'une personne qui ne peut pas bien communiquer par le biais du code puisse mieux communiquer par le biais du langage naturel.
Méfiez-vous de la documentation API générée automatiquement
Méfiez-vous également de la documentation des API générées automatiquement. Si je dois recourir à la lecture de tels documents, ce sera parce que votre code est si difficile à lire. Encore une fois, rendez le code simple et je peux le lire directement.
Les tests sont aussi des documents
Les tests sont aussi de la documentation. Ne traitez donc pas vos tests unitaires comme une corvée. Traitez-les comme un moyen de communiquer avec les autres (votre auto de six mois plus tard étant inclus ici) quant à la façon dont le code fonctionne et est destiné à être utilisé.
Dessinez des images si cela vous aide
Si vous aimez UML, alors trouvez-vous par tous les moyens un bon outil et générez des diagrammes UML à partir de votre code. N'essayez jamais de l'utiliser pour générer du code. Ce n'est pas bon comme outil de conception et vous vous retrouverez avec un code horrible.
Avoir un document de vue "1000ft"
Enfin, écrivez-vous un document de présentation. Que fait l'application? Comment ça marche? À quels autres systèmes est-il connecté? Des choses comme ça. N'essayez cependant pas de décrire ici la structure du code. Laissez le code faire cela. Laissez ce document vous rappeler pourquoi vous avez écrit le code en premier lieu.
la source
add 1 to i
, les commentaires devraient expliquer pourquoi le code fait ce qu'il fait. Par exemple, le codeif (!something.Exists()) {...}
peut utiliser un commentaire comme:// something exists only when (explanation of the broader scenario)
.// increment x
x++;
commentaires qui ne sont d'aucune utilité, mais il est faux de jeter le bébé avec l'eau du bain et de déclarer que les commentaires sont toujours mauvais. Par exemple, les commentaires du formulaire// this case should never happen because xyz
throw exception "unreachable"
.//XXX: Not using straight-forward method Foo here because ...
. De tels commentaires peuvent être extrêmement précieux, mais sont impossibles à transmettre avec du code pour des raisons évidentes.Fournir une lettre de motivation
Sauf si vous êtes dans un domaine très technique, la plupart des questions sur le code ne porteront pas sur le «comment» mais sur le «pourquoi» ou le «quoi».
En tant que tel, la façon de réduire les gens d'avoir à regarder dans votre code, est d'écrire une courte description de celui-ci. L'avantage de ceci est que vous pouvez compiler un aperçu des descriptions assez facilement, et que c'est beaucoup plus accessible. (Même pour les personnes qui ne veulent pas / ne sont pas autorisées à voir le code).
Même si les gens sont techniques, la lettre d'accompagnement devrait indiquer où ils devraient chercher quelque chose.
Points simples extrêmement minimalistes:
Exemple
la source
Le gain de vitesse le plus important que j'obtiens généralement en créant des commits séparés qui représentent chacun une étape intermédiaire qui compile et fonctionne.
Donc, si je dois introduire un nouveau paramètre dans une fonction afin d'implémenter une fonctionnalité spécifique, il y a un commit qui ne fait que rajouter le paramètre dans la déclaration, dans la définition et sur tous les sites d'appel. Ensuite, le prochain commit introduit des fonctionnalités et le troisième met à jour les sites d'appels qui utilisent la nouvelle fonctionnalité.
Ceci est facile à examiner, car les changements purement mécaniques peuvent être vus rapidement et ensuite être écartés.
De même, si vous reformatez le code, cela devrait toujours être un commit séparé.
la source
Bien qu'il y ait un ou deux points de désaccord apparents entre les réponses existantes, ne serait-ce que dans l'accent, j'essaierai de résumer les conseils habituels d'une manière qui indique clairement d'où tout le monde vient:
D'un autre côté, je me trompe probablement trop dans l'autre sens, sans presque jamais utiliser de commentaires. Vos réviseurs de code vous feront savoir si vous avez le solde au mauvais endroit pour eux, mais si vous faites un effort conscient pour suivre le plan en 3 points ci-dessus, vous serez probablement de toute façon proche de leur optimum.
la source