Pourquoi incorporons-nous toujours des descriptions en langage naturel du code source (c.-à-d. La raison pour laquelle une ligne de code a été écrite) dans le code source, plutôt que comme document séparé?
Compte tenu de l'immobilier étendu offert aux environnements de développement modernes (moniteurs haute résolution, doubles moniteurs, etc.), un IDE pourrait fournir des panneaux à demi-verrouillage dans lesquels le code source est visuellement séparé de - mais intrinsèquement lié à - ses commentaires correspondants. Par exemple, les développeurs pourraient écrire des commentaires de code source dans un langage de balisage hyper-lié (reliant à des exigences logicielles supplémentaires), ce qui empêcherait simultanément la documentation d'encombrer le code source.
Quelles lacunes empêcheraient un tel mécanisme de développement logiciel?
Une maquette pour aider à clarifier la question:
Lorsque le curseur se trouve sur une ligne particulière du code source (illustré avec un arrière-plan bleu, ci-dessus), la documentation qui correspond à la ligne sur le curseur est mise en surbrillance (c'est-à-dire qu'elle se distingue des autres détails). Comme indiqué dans la question, la documentation resterait en phase de verrouillage avec le code source lorsque le curseur saute dans le code source. Un raccourci clavier pourrait basculer entre le "mode de documentation" et le "mode de développement".
Les avantages potentiels incluent:
- Plus de code source et plus de documentation sur les écrans à la fois
- Possibilité de modifier la documentation indépendamment du code source (quelle que soit la langue?)
- Écrire de la documentation et du code source en parallèle sans conflits de fusion
- Documentation hypertexte en temps réel avec un formatage de texte supérieur
- Traduction automatique en temps quasi réel dans différentes langues naturelles
- Chaque ligne de code peut être clairement liée à une tâche, une exigence métier, etc.
- La documentation peut horodater automatiquement lorsque chaque ligne de code a été écrite (métriques)
- Inclusion dynamique de diagrammes d'architecture, d'images pour expliquer les relations, etc.
- Documentation à source unique (par exemple, extraits de code de balise pour inclusion dans le manuel de l'utilisateur).
Remarque:
- La fenêtre de documentation peut être réduite
- Le flux de travail pour afficher ou comparer les fichiers source ne serait pas affecté
- Comment l'implémentation se déroule est un détail; la documentation pourrait être:
- conservé à la fin du fichier source;
- divisé en deux fichiers par convention (
filename.c
,filename.c.doc
); ou - entièrement basé sur la base de données
- Par documentation hyperliée, j'entends la création de liens vers des sources externes (telles que StackOverflow ou Wikipedia) et des documents internes (c'est-à-dire un wiki sur un sous-domaine qui pourrait renvoyer à la documentation des exigences commerciales) et à d'autres fichiers source (similaires à JavaDocs).
Fil connexe: Quelle est l'aversion pour la documentation dans l'industrie?
Gson()
objet est instancié par rapport à la classe MainActivity, ni comment il se rapporte à la résolution d'une exigence métier particulière. La description du code lui-même, plutôt que des API qu'il utilise, pourrait se faire dans une fenêtre distincte, indépendamment des JavaDocs tiers.