Sie sind KEINE ABSOLUTE Referenzdokumentation
Beachten Sie, dass viele der folgenden Punkte auch auf Kommentare zutreffen, da sie möglicherweise nicht mehr mit dem Code synchronisiert sind, wie z. B. Tests (obwohl dies weniger durchsetzbar ist).
Also am Ende, der beste Weg , den Code zu verstehen ist lesbar funktionierenden Code zu haben .
Wenn es überhaupt möglich ist und keine fest verdrahteten Codeabschnitte auf niedriger Ebene oder besonders schwierige Bedingungen geschrieben werden, ist eine zusätzliche Dokumentation von entscheidender Bedeutung.
- Tests können unvollständig sein:
- Die API wurde geändert und nicht getestet.
- Die Person, die den Code geschrieben hat, hat die Tests für die am einfachsten zu testenden Methoden anstatt für die wichtigsten zu testenden Methoden geschrieben und hatte dann keine Zeit zum Beenden.
- Tests können veraltet sein.
- Tests können auf nicht offensichtliche Weise kurzgeschlossen und nicht tatsächlich ausgeführt werden.
ABER sie sind NOCH eine HILFREICHE Ergänzung zur Dokumentation
Wenn ich jedoch im Zweifel bin, was eine bestimmte Klasse macht, insbesondere wenn sie ziemlich langwierig ist, undurchsichtig ist und keine Kommentare enthält (Sie kennen die Art ...), versuche ich schnell, die Testklasse (n) zu finden und Folgendes zu überprüfen:
- was sie tatsächlich zu überprüfen versuchen (gibt einen Hinweis auf die wichtigsten Leckerbissen, es sei denn, der Entwickler hat den oben genannten Fehler begangen, nur die "einfachen" Tests zu implementieren),
- und wenn es Eckfälle gibt.
Wenn sie mit einem BDD-Stil geschrieben wurden , geben sie außerdem eine recht gute Definition des Klassenvertrags . Öffnen Sie Ihre IDE (oder verwenden Sie grep), um nur Methodennamen und tada anzuzeigen: Sie haben eine Liste von Verhaltensweisen.
Regressionen und Bugs benötigen ebenfalls Tests
Es ist auch eine gute Praxis, Tests für die Regression und für Fehlerberichte zu schreiben: Sie beheben etwas, Sie schreiben einen Test, um den Fall zu reproduzieren. Wenn Sie auf diese zurückblicken, ist dies beispielsweise eine gute Möglichkeit, den entsprechenden Fehlerbericht und alle Details zu einem alten Problem zu finden.
Ich würde sagen, sie sind eine gute Ergänzung zur echten Dokumentation und zumindest eine wertvolle Ressource in dieser Hinsicht. Es ist ein gutes Werkzeug, wenn es richtig verwendet wird. Wenn Sie früh mit dem Testen Ihres Projekts beginnen und es zur Gewohnheit machen, KÖNNTE es eine sehr gute Referenzdokumentation sein. Gehen Sie bei einem vorhandenen Projekt mit schlechten Codierungsgewohnheiten, die die Codebasis bereits stinken, vorsichtig damit um.