Perché incorporiamo ancora le descrizioni in linguaggio naturale del codice sorgente (ovvero il motivo per cui è stata scritta una riga di codice) all'interno del codice sorgente, piuttosto che come documento separato?
Dato l'ampio patrimonio immobiliare offerto ai moderni ambienti di sviluppo (monitor ad alta risoluzione, doppio monitor, ecc.), Un IDE potrebbe fornire pannelli a semiflodo in cui il codice sorgente è visivamente separato da - ma intrinsecamente collegato a - i suoi commenti corrispondenti. Ad esempio, gli sviluppatori potrebbero scrivere commenti sul codice sorgente in un linguaggio di markup hyperlink (collegamento a requisiti software aggiuntivi), che impedirebbe contemporaneamente alla documentazione di ingombrare il codice sorgente.
Quali carenze inibirebbero tale meccanismo di sviluppo del software?
Un modello per chiarire la domanda:
Quando il cursore si trova su una determinata riga nel codice sorgente (mostrato con uno sfondo blu, sopra), viene evidenziata la documentazione che corrisponde alla riga sul cursore (ovvero, distinta dagli altri dettagli). Come notato nella domanda, la documentazione rimarrebbe al passo con il codice sorgente mentre il cursore passa attraverso il codice sorgente. Un tasto di scelta rapida potrebbe alternare tra "modalità documentazione" e "modalità di sviluppo".
I potenziali vantaggi includono:
- Più codice sorgente e più documentazione sugli schermi contemporaneamente
- Possibilità di modificare la documentazione indipendentemente dal codice sorgente (indipendentemente dalla lingua?)
- Scrivi la documentazione e il codice sorgente in parallelo senza unire i conflitti
- Documentazione ipertestuale in tempo reale con una formattazione del testo superiore
- Traduzione automatica quasi in tempo reale in diverse lingue naturali
- Ogni riga di codice può essere chiaramente collegata a un'attività, requisiti aziendali, ecc.
- La documentazione potrebbe automaticamente timestamp quando è stata scritta ogni riga di codice (metriche)
- Inclusione dinamica di diagrammi di architettura, immagini per spiegare le relazioni, ecc.
- Documentazione a fonte singola (ad es. Frammenti di codice tag per l'inclusione manuale dell'utente).
Nota:
- La finestra della documentazione può essere compressa
- Il flusso di lavoro per la visualizzazione o il confronto dei file di origine non sarebbe interessato
- Come avviene l'implementazione è un dettaglio; la documentazione potrebbe essere:
- mantenuto alla fine del file sorgente;
- diviso in due file per convenzione (
filename.c
,filename.c.doc
); o - completamente basato su database
- Per documentazione con collegamento ipertestuale, intendo il collegamento a fonti esterne (come StackOverflow o Wikipedia) e documenti interni (ovvero una wiki su un sottodominio che potrebbe fare riferimenti incrociati alla documentazione dei requisiti aziendali) e altri file di origine (simili a JavaDocs).
Discussione correlata: Qual è l'avversione per la documentazione nel settore?
Gson()
oggetto viene istanziato in relazione alla classe MainActivity, né come si collega alla risoluzione di un particolare requisito aziendale. La descrizione del codice stesso, anziché delle API che utilizza, potrebbe trovarsi in una finestra separata, indipendentemente dai JavaDocs di terze parti.