NON sono una documentazione di riferimento ASSOLUTA
Si noti che molti dei seguenti aspetti si applicano anche ai commenti, in quanto possono non essere sincronizzati con il codice, come i test (anche se sono meno applicabili).
Quindi, alla fine, il modo migliore per capire il codice è avere codice di lavoro leggibile .
Se possibile e non scrivendo sezioni di codice a basso livello cablate o condizioni particolarmente difficili, la documentazione aggiuntiva sarà fondamentale.
- I test possono essere incompleti:
- L'API è cambiata e non è stata testata,
- La persona che ha scritto il codice ha scritto i test per i metodi più semplici da testare prima anziché i metodi più importanti da testare e quindi non ha avuto il tempo di terminare.
- I test possono essere obsoleti.
- I test possono essere cortocircuitati in modi non ovvi e non effettivamente eseguiti.
MA SONO ANCORA un complemento di documentazione UTILE
Tuttavia, in caso di dubbi su ciò che fa una particolare classe, specialmente se i commenti piuttosto lunghi, oscuri e mancanti (si conosce il tipo ...), cerco rapidamente di trovare le sue classi di test e controllare:
- quello che cercano effettivamente di controllare (dà un suggerimento sui più importanti bocconcini, eccetto se lo sviluppatore ha fatto l'errore di cui sopra solo implementando i test "facili"),
- e se ci sono casi d'angolo.
Inoltre, se scritto utilizzando uno stile BDD , fornisce una definizione piuttosto buona del contratto della classe . Apri il tuo IDE (o usa grep) per vedere solo i nomi dei metodi e tada: hai un elenco di comportamenti.
Regressioni e bug richiedono test anche
Inoltre, è una buona pratica scrivere test per la regressione e per segnalazioni di bug: si aggiusta qualcosa, si scrive un test per riprodurre il caso. Per esempio, quando si guardano indietro, è un buon modo per trovare la segnalazione di bug pertinente e tutti i dettagli su un vecchio problema, per esempio.
Direi che sono un buon complemento alla documentazione reale e almeno una risorsa preziosa a questo riguardo. È un buon strumento, se usato correttamente. Se inizi a testare presto nel tuo progetto e ne fai un'abitudine, potrebbe essere un'ottima documentazione di riferimento. Su un progetto esistente con cattive abitudini di codifica che già affliggono la base del codice, gestiscile con cura.