Perché incorporiamo ancora descrizioni in linguaggio naturale del codice sorgente (cioè, la ragione per cui perché è stata scritta una riga di codice) all'interno del codice sorgente, piuttosto che come documento separato?
Dato l'ampio spazio disponibile per gli ambienti di sviluppo moderni (monitor ad alta risoluzione, dual-monitor, ecc.), un IDE potrebbe fornire pannelli semi-bloccati in cui il codice sorgente è visivamente separato - ma intrinsecamente collegato a - i suoi commenti corrispondenti. Ad esempio, gli sviluppatori possono scrivere commenti sul codice sorgente in un linguaggio di markup iperlinkato (collegamento a requisiti software aggiuntivi), che impediscono contemporaneamente alla documentazione di ingombrare il codice sorgente.
Quali carenze inibirebbero un tale meccanismo di sviluppo del software?
Un mock-up per aiutare a chiarire la domanda:
Quandoilcursoresitrovasuunaparticolarerigadelcodicesorgente(mostratoconunosfondoblu,sopra),ladocumentazionechecorrispondeallalineasulcursoreèevidenziata(cioè,distintadaglialtridettagli).Comeindicatonelladomanda,ladocumentazionerimarràinlock-stepconilcodicesorgentementreilcursoresaltaattraversoilcodicesorgente.Untastorapidopotrebbepassaretra"modalità documentazione" e "modalità sviluppo".
I potenziali vantaggi includono:
- Più codice sorgente e più documentazione sullo schermo (s) in una volta
- Possibilità di modificare la documentazione indipendentemente dal codice sorgente (indipendentemente dalla lingua?)
- Scrivi documentazione e codice sorgente in parallelo senza conflitti di fusione
- 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à, a requisiti aziendali, ecc.
- La documentazione può essere automaticamente timestamp quando ogni riga di codice è stata scritta (metrica)
- Inclusione Dinamica di diagrammi di architettura, immagini per spiegare le relazioni, ecc.
- Documentazione a sorgente singola (ad es. snippet 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 sorgente non sarebbe interessato
-
In che modo l'implementazione avviene è un dettaglio; la documentazione potrebbe essere:
- conservato alla fine del file sorgente;
- diviso in due file per convenzione (
filename.c
,filename.c.doc
); o - completamente basato su database
- Con la documentazione hyperlinked, intendo il collegamento a fonti esterne (come StackOverflow o Wikipedia) e documenti interni (ad esempio, un wiki su un sottodominio che potrebbe incrociare la documentazione sui requisiti aziendali) e altri file di origine (simile a JavaDocs).
Thread correlati: Che cos'è con l'avversione alla documentazione nel settore?