Spis dokumentacji12 / 20

Zachowaj swoje decyzje12 / 20

Zobacz pokrycie zamiaru

Na tej stronie

Jak dużą część tego oprogramowania naprawdę rozumiesz? Intent coverage odpowiada jednym obrazem: jeden kwadrat na plik kodu, ułożony według modułów, a im ciemniejszy kwadrat, tym więcej jego wierszy cytują Twoje wyjaśnienia. Co jest jeszcze puste i które wyjaśnienia są nieaktualne, widać na pierwszy rzut oka. Wskaż zamiar, a zapalą się pliki, które obejmuje.

Otwórz Intent coverage

Zacznij nowy czat: zanim wyślesz pierwszą wiadomość, obszar czatu pokazuje kartę Intent coverage. Możesz też otworzyć Settings → Intent coverage (w grupie bieżącego projektu), gdzie karta wypełnia stronę, co pomaga przy dużych projektach.

Intent coverage wymaga, by folder Implementation był repozytorium Git. Dopóki projekt nie ma wyniku pokrycia, karta mówi „Not computed yet” i oferuje dwa wejścia: „Explain” każe Agentowi najpierw napisać wyjaśnienia, a „Compute now” oblicza pokrycie z wyjaśnień, które już masz. Duże repozytoria oznaczają czytanie każdego pliku, więc może to chwilę potrwać.

Potem karta aktualizuje się za każdym razem, gdy Explain się skończy. Po prawej stronie linii tytułu widać, kiedy zakończył się ostatni Explain i jaki był wtedy commit, z przyciskiem do ponownego obliczenia.

Przeczytaj kartę

U góry karty jest duża liczba: udział wszystkich wierszy kodu w zakresie, które cytują wyjaśnienia. Obok „3 / 6 files” to liczba plików, za którymi stoi zamiar, z ogólnej liczby.

Karta Intent coverage: 68% wierszy kodu jest cytowanych przez wyjaśnienia, a za 41 z 60 plików stoi zamiar. Obszar modułów układa kropkę na plik według folderów, a poniżej wymieniony jest każdy dokument założeń.

Pasek poniżej ma trzy części, z legendą pod spodem:

  • Referenced lines: część pełna, tak długa jak procent.
  • Explanation outdated: część kreskowana, pliki zmienione po napisaniu ich wyjaśnień.
  • No intent: część pusta, pliki, których nie cytuje żadne wyjaśnienie.

Według modułów

Obszar „Modules” domyślnie pokazuje kropki: jedna kropka na plik, jeden rząd na folder. Pliki, za którymi stoi zamiar, ciemnieją w miarę tego, ile ich wierszy jest cytowanych; pliki, których wyjaśnienia są nieaktualne, są kreskowane; pliki bez zamiaru są puste. Wskaż kropkę, by zobaczyć nazwę pliku i to, jak duża jego część jest cytowana.

Przełącznik w prawym górnym rogu zamienia kropki w paski: jeden rząd na moduł, tak długi jak liczba jego wierszy, podzielony na trzy stany.

Kliknij moduł, by zejść o jeden poziom niżej; w linii tytułu pojawiają się przycisk powrotu i ścieżka. W usłudze subskrypcyjnej rzędy billing, jobs, notify i web leżą na przykład obok siebie, a rząd notify jest prawie pusty: reguły dla e-maili z powiadomieniami nie zostały jeszcze wpisane do zamiaru.

Według zamiaru

Pod modułami jest lista zamiarów, jeden rząd na dokument założeń, wcięty jak drzewo dokumentów, z krótką linią pokazującą, na ile plików się odwzorowuje. Dokument, za którym nie stoi jeszcze żaden kod, jest wyszarzony z pustą linią.

  • Wskaż dokument: rzędy w obszarze modułów, które nie mają z nim nic wspólnego, blakną, a układ zostaje na miejscu.
  • Kliknij dokument: niepowiązane rzędy się zwijają, pasek i kropki pokazują tylko kod, na który odwzorowuje się ten zamiar, a pod nagłówkiem modułów pojawia się znacznik z nazwą dokumentu i ×.
  • Kliknij go ponownie, kliknij × na znaczniku albo naciśnij Esc, by wyczyścić.

Kliknij na przykład Odnowienie, a zostaną tylko billing/grace.ts, jobs/renewal-job.ts i kilka plików testowych. Od razu widzisz, czego dotknie zmiana reguł odnowienia.

Co znaczy liczba

Pokrycie mierzy, jak dużo kodu cytują Twoje wyjaśnienia. To nie jest jakość kodu ani pokrycie testami. Pomaga odpowiedzieć na dwa pytania:

  • Gdzie nie ma jeszcze zamiaru? Pusty moduł to albo kod, który niewiele znaczy, albo reguły, które już działają, a których nie przemyślałeś. Te drugie zasługują na akapit zamiaru i Explain.
  • Gdzie wyjaśnienia są nieaktualne? Silne kreskowanie oznacza niedawne zmiany, za którymi wyjaśnienia nie nadążyły; zobacz Gdy kod się zmienia.

Nie ma potrzeby gonić za 100%. Zacznij od części, na których Ci najbardziej zależy, i niech to one ciemnieją najpierw.

Parnas Index

Settings → Parnas Index patrzy na to samo z drugiej strony: jak daleko zmiany kodu sięgają w Twój zamiar. Nazwa pochodzi od zasady podziału na moduły Davida Parnasa: dobry moduł ukrywa decyzję, która prawdopodobnie się zmieni. W Noea fragment zamiaru oznacza decyzję, a plik kodu moduł.

Duża liczba u góry to średnia liczba fragmentów zamiaru sprawdzanych ponownie na jeden zmieniony plik, z informacją, ile z nich w pełni sprawdzono i ile z tych się nie zmieniło. Im wyższa, tym więcej decyzji pociąga za sobą pojedyncza zmiana. Okno czasowe może wynosić 7, 30 lub 90 dni.

Strona ma dwa widoki:

WidokPoziomyKolumny
Code → intentsFiles, DefinitionsIntents reached, Changes, Per change, No change
Intents ← codeDocuments, PassagesFiles cited, Code changes, Intent changes, No change

Kliknij rząd, by otworzyć go na miejscu. Rząd pliku pokazuje, jak dużą jego część cytują wyjaśnienia, zamiary, do których sięga najczęściej, i „View in Intent coverage”; rząd zamiaru pokazuje, ile plików cytuje, kod, który sięga do niego najczęściej, i sposób otwarcia tego fragmentu.

Pod poziomem plików w pierwszym widoku jest wykres punktowy „Coverage and reach”: w poziomie udział wierszy cytowanych przez wyjaśnienia, w pionie liczba fragmentów zamiaru, do których sięga każda zmiana. Pliki w prawym górnym rogu są gęsto cytowane i często zmieniane, więc każda zmiana oznacza ponowne sprawdzenie dużej ilości zamiaru; może warto je podzielić. Wyższe pokrycie nie zawsze jest lepsze.

Jeśli projekt nie ma jeszcze powiązanego folderu Implementation, obie strony proszą najpierw o jego powiązanie w Settings → Project.