Inhalt der Dokumentation12 / 20

Deine Entscheidungen bewahren12 / 20

Deine Absichtsabdeckung ansehen

Auf dieser Seite

Wie viel von dieser Software hast du wirklich im Griff? Die Absichtsabdeckung beantwortet das mit einem Bild: ein Quadrat pro Codedatei, nach Modulen angeordnet; je dunkler das Quadrat, desto mehr seiner Zeilen zitieren deine Erläuterungen. Was noch leer ist und welche Erläuterungen veraltet sind, zeigt sich auf einen Blick. Zeigst du auf einen Intent, leuchten die Dateien auf, die er abdeckt.

Die Absichtsabdeckung öffnen

Starte einen neuen Chat: Bevor du die erste Nachricht sendest, zeigt der Chatbereich die Karte „Absichtsabdeckung“. Du kannst auch „Einstellungen“ → „Absichtsabdeckung“ öffnen (in der Gruppe des aktuellen Projekts), wo die Karte die Seite füllt, was bei großen Projekten hilft.

Die Absichtsabdeckung setzt voraus, dass der Implementierungsordner ein Git-Repository ist. Solange das Projekt kein Abdeckungsergebnis hat, sagt die Karte „Noch nicht berechnet“ und bietet zwei Wege an: „Erläutern“ lässt den Agent zuerst Erläuterungen schreiben, „Jetzt berechnen“ berechnet die Abdeckung aus den Erläuterungen, die du schon hast. Bei großen Repositorys müssen alle Dateien gelesen werden, das kann also eine Weile dauern.

Danach aktualisiert sich die Karte jedes Mal, wenn Erläutern fertig ist. Rechts in ihrer Titelzeile steht, wann das letzte Erläutern endete und welcher Commit damals aktuell war, mit einer Schaltfläche zum erneuten Berechnen.

Die Karte lesen

Oben auf der Karte steht eine große Zahl: der Anteil aller Codezeilen im Bereich, die Erläuterungen zitieren. Daneben zeigt „3 / 6 Dateien“, wie viele Dateien von insgesamt einen Intent hinter sich haben.

Die Karte „Absichtsabdeckung“: 68 % der Codezeilen werden von Erläuterungen zitiert, und 41 von 60 Dateien haben einen Intent hinter sich. Der Modulbereich legt einen Punkt pro Datei nach Ordnern aus, darunter ist jedes Intent-Dokument aufgelistet.

Der Balken darunter hat drei Teile, mit einer Legende darunter:

  • Referenzierte Zeilen: der gefüllte Teil, so lang wie der Prozentwert.
  • Erläuterung veraltet: der schraffierte Teil, Dateien, die sich nach dem Schreiben ihrer Erläuterungen geändert haben.
  • Ohne Absicht: der leere Teil, Dateien, die keine Erläuterung zitiert.

Nach Modul

Der Bereich „Module“ zeigt standardmäßig Punkte: einen Punkt pro Datei, eine Zeile pro Ordner. Dateien mit Intent dahinter werden dunkler, je mehr ihrer Zeilen zitiert sind; Dateien, deren Erläuterungen veraltet sind, sind schraffiert; Dateien ohne Intent sind leer. Zeige auf einen Punkt, um den Dateinamen und den zitierten Anteil zu sehen.

Der Schalter oben rechts verwandelt die Punkte in Balken: eine Zeile pro Modul, so lang wie seine Zeilenzahl, aufgeteilt in die drei Zustände.

Klicke auf ein Modul, um eine Ebene tiefer zu gehen; in der Titelzeile erscheinen eine Zurück-Schaltfläche und der Pfad. Beim Abo-Dienst liegen zum Beispiel die Zeilen für billing, jobs, notify und web nebeneinander, und die Zeile notify ist fast leer: Die Regeln für Benachrichtigungs-E-Mails sind noch nicht in den Intent geschrieben.

Nach Intent

Unter den Modulen steht die Liste der Intents, eine Zeile pro Intent-Dokument, eingerückt wie der Dokumentbaum, mit einer kurzen Linie, die zeigt, auf wie viele Dateien es abgebildet ist. Ein Dokument ohne Code dahinter ist ausgegraut, mit leerer Linie.

  • Zeige auf ein Dokument: Zeilen im Modulbereich, die nichts damit zu tun haben, verblassen, und das Layout bleibt stehen.
  • Klicke auf ein Dokument: Nicht verwandte Zeilen klappen weg, Balken und Punkte zeigen nur den Code, auf den dieser Intent abgebildet ist, und unter der Modulüberschrift erscheint ein Chip mit dem Namen des Dokuments und einem ×.
  • Klicke erneut darauf, klicke auf das × des Chips oder drücke Esc, um es aufzuheben.

Klicke zum Beispiel auf Verlängerung, und es bleiben nur billing/grace.ts, jobs/renewal-job.ts und einige Testdateien. Du siehst sofort, was eine Änderung der Verlängerungsregeln berührt.

Was die Zahl bedeutet

Die Abdeckung misst, wie viel Code deine Erläuterungen zitieren. Sie ist weder Codequalität noch Testabdeckung. Sie hilft dir bei zwei Fragen:

  • Wo gibt es noch keinen Intent? Ein leeres Modul ist entweder Code, der nicht viel zählt, oder Regeln, die schon laufen und die du nicht durchdacht hast. Letztere verdienen einen Absatz Intent und ein Erläutern.
  • Wo sind Erläuterungen veraltet? Viel Schraffur bedeutet jüngste Änderungen, mit denen die Erläuterungen nicht Schritt gehalten haben; siehe Wenn sich der Code ändert.

Du musst nicht 100 % anstreben. Fang mit dem an, was dir am wichtigsten ist, und lass das zuerst dunkler werden.

Parnas Index

„Einstellungen“ → „Parnas Index“ betrachtet dasselbe von der anderen Seite: wie weit Codeänderungen in deinen Intent hineinreichen. Der Name stammt von David Parnas' Prinzip der Modulzerlegung: Ein gutes Modul verbirgt eine Entscheidung, die sich wahrscheinlich ändern wird. In Noea steht ein Absatz Intent für eine Entscheidung und eine Codedatei für ein Modul.

Die große Zahl oben ist, wie viele Absätze Intent im Durchschnitt pro geänderter Datei erneut geprüft werden, dazu wie viele vollständig geprüft wurden und wie viele davon sich nicht geändert haben. Je höher sie ist, desto mehr Entscheidungen zieht eine einzelne Änderung mit. Das Zeitfenster kann 7, 30 oder 90 Tage betragen.

Die Seite hat zwei Ansichten:

AnsichtEbenenSpalten
Wie viele Absichten dieser Code berührtDateien, DefinitionenBerührte Absichten, Änderungen, Pro Änderung, Keine Änderung
Wie viel Code diese Absicht berührtDokumente, AbsätzeZitierte Dateien, Codeänderungen, Absichtsänderungen, Keine Änderung

Klicke auf eine Zeile, um sie an Ort und Stelle zu öffnen. Eine Dateizeile zeigt, wie viel davon Erläuterungen zitieren, welche Intents sie am stärksten berührt, und „In Absichtsabdeckung ansehen“; eine Intent-Zeile zeigt, wie viele Dateien sie zitiert, welcher Code sie am stärksten berührt, und einen Weg, diesen Absatz zu öffnen.

Unter der Dateiebene der ersten Ansicht steht ein Streudiagramm „Abdeckung und Reichweite“: waagerecht der Anteil der von Erläuterungen zitierten Zeilen, senkrecht, wie viele Absätze Intent jede Änderung erreicht. Dateien oben rechts sind dicht zitiert und oft geändert, sodass jede Änderung viel Intent erneut prüfen lässt; vielleicht lohnt es sich, sie aufzuteilen. Höhere Abdeckung ist nicht immer besser.

Ist mit dem Projekt noch kein Implementierungsordner verknüpft, bitten beide Seiten dich, zuerst unter „Einstellungen“ → „Projekt“ einen zu verknüpfen.