Conserva tus decisiones12 / 20
Ver la cobertura de tu intención
En esta página
¿Cuánto de este software tienes realmente bajo control? La cobertura de intenciones responde con una sola imagen: un cuadrado por archivo de código, ordenados por módulo; cuanto más oscuro el cuadrado, más de sus líneas citan tus explicaciones. Lo que sigue en blanco y las explicaciones que están desactualizadas se ven de un vistazo. Señala una intención y se iluminan los archivos que cubre.
Abre la cobertura de intenciones
Inicia un chat nuevo: antes de enviar el primer mensaje, el área del chat muestra la tarjeta de Cobertura de intenciones. También puedes abrir Configuración → Cobertura de intenciones (en el grupo del proyecto actual), donde la tarjeta llena la página, lo que ayuda en proyectos grandes.
La cobertura de intenciones necesita que la carpeta de implementación sea un repositorio Git. Hasta que el proyecto tiene un resultado de cobertura, la tarjeta dice «Aún no calculada» y ofrece dos formas de empezar: «Explicar» hace que el agente escriba primero las explicaciones, y «Calcular ahora» calcula la cobertura a partir de las explicaciones que ya tienes. Los repositorios grandes exigen leer cada archivo, así que puede tardar.
Después, la tarjeta se actualiza cada vez que termina una ejecución de Explicar. A la derecha de su línea de título aparece cuándo terminó la última ejecución de Explicar y el commit de ese momento, con un botón para calcular de nuevo.
Lee la tarjeta
En la parte superior de la tarjeta hay un número grande: la proporción de todas las líneas de código del ámbito que citan las explicaciones. A su lado, «3 / 6 archivos» indica cuántos archivos tienen intención detrás del total.
La barra de debajo tiene tres partes, con una leyenda debajo:
- Líneas referenciadas: la parte sólida, tan larga como el porcentaje.
- Explicación desactualizada: la parte rayada, los archivos que cambiaron después de escribirse sus explicaciones.
- Sin intención: la parte vacía, los archivos que ninguna explicación cita.
Por módulo
El área «Módulos» muestra puntos por defecto: un punto por archivo, una fila por carpeta. Los archivos con intención detrás se oscurecen cuantas más de sus líneas se citan; los archivos cuyas explicaciones están desactualizadas aparecen rayados; los archivos sin intención aparecen vacíos. Señala un punto para ver el nombre del archivo y cuánto de él está citado.
El interruptor de arriba a la derecha convierte los puntos en barras: una fila por módulo, tan larga como su número de líneas, dividida en los tres estados.
Haz clic en un módulo para bajar un nivel; en la línea de título aparecen un botón de volver y la ruta. En el servicio de suscripciones, por ejemplo, las filas de billing, jobs, notify y web aparecen una al lado de otra, y la fila de notify está casi vacía: las reglas de los correos de notificación aún no se han escrito en la intención.
Por intención
Bajo los módulos está la lista de intenciones, una fila por documento de intención, con sangría como el árbol de documentos, y una línea breve que indica a cuántos archivos corresponde. Un documento sin código detrás aparece en gris con una línea vacía.
- Señala un documento: las filas del área de módulos que no tienen nada que ver con él se atenúan, y la disposición no se mueve.
- Haz clic en un documento: las filas no relacionadas se pliegan, la barra y los puntos muestran solo el código al que corresponde esta intención, y bajo el título de módulos aparece un chip con el nombre del documento y una ×.
- Vuelve a hacer clic, haz clic en la × del chip o pulsa
Escpara quitarlo.
Haz clic en Renovación, por ejemplo, y solo quedan billing/grace.ts, jobs/renewal-job.ts y unos pocos archivos de pruebas. Ves de inmediato qué tocará un cambio en las reglas de renovación.
Qué significa el número
La cobertura mide cuánto código citan tus explicaciones. No es calidad del código ni cobertura de pruebas. Te ayuda a responder dos preguntas:
- ¿Dónde aún no hay intención? Un módulo en blanco es código que no importa mucho, o reglas que ya funcionan y en las que no has pensado a fondo. Estas últimas merecen un párrafo de intención y una ejecución de Explicar.
- ¿Dónde están desactualizadas las explicaciones? Mucho rayado indica cambios recientes que las explicaciones no han alcanzado; consulta Cuando el código cambia.
No hace falta perseguir el 100 %. Empieza por lo que más te importa y deja que eso se oscurezca primero.
Parnas Index
Configuración → Parnas Index mira lo mismo desde el otro lado: hasta dónde alcanzan los cambios de código en tu intención. El nombre procede del principio de descomposición en módulos de David Parnas: un buen módulo oculta una decisión que probablemente cambie. En Noea, un pasaje de intención representa una decisión y un archivo de código un módulo.
El número grande de arriba es cuántos pasajes de intención se vuelven a comprobar, de media, por archivo cambiado, con cuántos se comprobaron del todo y cuántos de ellos no cambiaron. Cuanto más alto, más decisiones arrastra un solo cambio. La ventana de tiempo puede ser de 7, 30 o 90 días.
La página tiene dos vistas:
| Vista | Niveles | Columnas |
|---|---|---|
| Cuántas intenciones alcanza este código | Archivos, Definiciones | Intenciones alcanzadas, Cambios, Por cambio, Sin cambios |
| Cuánto código alcanza esta intención | Documentos, Pasajes | Archivos citados, Cambios de código, Cambios de intención, Sin cambios |
Haz clic en una fila para abrirla en su sitio. Una fila de archivo muestra cuánto de él citan las explicaciones, las intenciones que más alcanza y «Ver en Cobertura de intención»; una fila de intención muestra cuántos archivos cita, el código que más la alcanza y una forma de abrir ese pasaje.
Bajo el nivel de archivo de la primera vista hay un diagrama de dispersión «Cobertura y alcance»: en horizontal, la proporción de líneas citadas por explicaciones; en vertical, a cuántos pasajes de intención llega cada cambio. Los archivos de arriba a la derecha están muy citados y cambian a menudo, así que cada cambio implica volver a comprobar mucha intención; quizá convenga dividirlos. Una cobertura más alta no siempre es mejor.
Si el proyecto aún no tiene vinculada una carpeta de implementación, ambas páginas te piden vincular una antes en Configuración → Proyecto.