Awesome CopilotAdventures

Documentación del producto verificada

Analizar y documentar la biblioteca en C#

Copilot puede proponer una explicación, pero el código y el comportamiento observado son la autoridad. #codebase realiza recuperación de información; no garantiza que se haya inspeccionado cada archivo fuente ni que cada afirmación sea correcta.

Resumen del laboratorio

Lupas siguen las conexiones entre una terminal, registros de biblioteca, almacenamiento y una hoja de documentación.

Ilustración conceptual original (SVG)

Traza un flujo de trabajo de biblioteca existente antes de documentarlo.

De un vistazo Tu ruta
Nivel y tiempo 200; 45 minutos (estimación de facilitación)
Acción inicial Sigue una operación de préstamo desde la consola hasta el almacenamiento y sus pruebas.
Materiales del aprendiz Descarga 02-csharp.zip
Espacio de trabajo Abre la raíz del kit extraído; ejecuta la baseline desde . relativa a esa raíz
Comprobación inicial esperada Las pruebas suministradas pasan. Los nuevos requisitos de funcionalidad siguen necesitando sus propias pruebas.
Ayuda de configuración Descarga, extrae, Git local y GitHub opcional

[!NOTE] Las referencias de origen deben nombrar tipos reales, registros y directorios de trabajo.

Conceptos · Primera tarea · Lista de evidencias · Restablecer

Objetivos de aprendizaje

  • Rastrea el comportamiento a través de la consola, el núcleo de la aplicación y la infraestructura.
  • Explica con precisión los ejemplares físicos de libros, los préstamos y los usuarios de la biblioteca.
  • Produce instrucciones de ejecución que funcionen desde un directorio indicado.

Antes de empezar

Completa la configuración de C# y después prepara 02-csharp. El fixture incluido es AccelerateDevGHCopilot. No se requiere un clon remoto ni un nuevo repositorio de GitHub.

Conceptos y casos de uso

Capa Responsabilidad Evidencia que inspeccionar
Consola Menú/entrada y presentación Program.cs, ConsoleApp.cs
Núcleo de la aplicación Decisiones e interfaces de préstamos y membresías Servicios, entidades, interfaces
Infraestructura Cargar, completar y guardar JSON JsonData, repositorios JSON
Pruebas Contratos de servicio seleccionados con sustitutos tests/UnitTests

Escenario del ejercicio

Un compañero ha entregado una pequeña aplicación de consola de biblioteca sin suficiente documentación para empezar a usarla. Escribe un README que distinga las funciones implementadas, las limitaciones y el trabajo propuesto.

Tarea 1 - Establecer las fuentes y la línea base

  1. Abre la raíz preparada. Inspecciona los cuatro archivos de proyecto.

  2. Ejecuta:

    dotnet build src/Library.Console/Library.Console.csproj -m:1 -p:UseSharedCompilation=false
    dotnet test tests/UnitTests/UnitTests.csproj -m:1 -p:UseSharedCompilation=false
    
  3. Registra los comandos, las pruebas, los errores y las advertencias. No copies una transcripción de otra ejecución.

  4. Lee src/Library.Console/appSettings.json. La consola usa su directorio de trabajo para localizar este archivo y el directorio Json.

Tarea 2 - Solicitar a Ask un recorrido fundamentado en el código fuente

Trace returning a loan from ConsoleApp through ILoanService and the JSON repository.
Cite the files and relevant methods. Explain how Book, BookItem, Loan, and Patron
relate. List unverified assumptions and existing error-handling limitations.
Do not edit or publish anything.

Verifica cada relación manualmente. Un título de libro no es un BookItem físico. Un Loan relaciona un ejemplar físico con un usuario de la biblioteca y contiene sus propias fechas.

---
config:
  theme: base
  look: classic
  themeVariables:
    darkMode: false
    background: "#ffffff"
    primaryColor: "#f5f5f5"
    primaryTextColor: "#111111"
    primaryBorderColor: "#555555"
    secondaryColor: "#e0e0e0"
    secondaryTextColor: "#111111"
    secondaryBorderColor: "#666666"
    tertiaryColor: "#bdbdbd"
    tertiaryTextColor: "#111111"
    tertiaryBorderColor: "#444444"
    lineColor: "#444444"
    textColor: "#111111"
    mainBkg: "#f5f5f5"
    nodeBorder: "#555555"
    clusterBkg: "#ffffff"
    clusterBorder: "#999999"
    edgeLabelBackground: "#ffffff"
    actorBkg: "#e0e0e0"
    actorBorder: "#555555"
    actorTextColor: "#111111"
    actorLineColor: "#777777"
    signalColor: "#333333"
    signalTextColor: "#111111"
    labelBoxBkgColor: "#f5f5f5"
    labelBoxBorderColor: "#777777"
    labelTextColor: "#111111"
    loopTextColor: "#111111"
    activationBkgColor: "#bdbdbd"
    activationBorderColor: "#555555"
    noteBkgColor: "#f5f5f5"
    noteTextColor: "#111111"
    noteBorderColor: "#777777"
    attributeBackgroundColorOdd: "#f5f5f5"
    attributeBackgroundColorEven: "#e0e0e0"
---
classDiagram
    accTitle: Límites de dependencias de la biblioteca en C#
    accDescr: La consola depende de contratos de servicio, los servicios de aplicación dependen de contratos de repositorio y la infraestructura JSON implementa el comportamiento de almacenamiento.
    class ConsoleApp
    class LoanService
    class ILoanRepository
    class JsonLoanRepository
    class JsonData
    ConsoleApp --> LoanService : invoca mediante el contrato de servicio
    LoanService --> ILoanRepository : depende de
    JsonLoanRepository ..|> ILoanRepository : implementa
    JsonLoanRepository --> JsonData : carga y persiste

Leyenda. Los rectángulos son tipos de código. Las flechas continuas son dependencias o llamadas; la flecha discontinua de realización denota la implementación de una interfaz.

Explicación. El diagrama describe funciones de dependencia, no demuestra que se pruebe cada rama de fallo. Confirma los registros de inyección de dependencias y los métodos reales de este fixture en lugar de presuponer una plantilla genérica de «arquitectura limpia».

Tarea 3 - Planificar y escribir un README útil

  1. En Plan, esboza la configuración, el directorio de ejecución, la arquitectura, los archivos de datos, las pruebas, los flujos implementados, las limitaciones y el restablecimiento.

  2. Exige referencias al código fuente para cada afirmación.

  3. En Agent, escribe únicamente el README. No «mejores» el código de producción durante una tarea de documentación.

  4. Documenta este inicio de la consola desde el proyecto copiado:

    cd src/Library.Console
    dotnet run --no-build
    
  5. Explica que las operaciones de devolución o renovación pueden modificar el JSON de la copia; usa registros sintéticos e inspecciona los cambios antes de restablecer.

Verifica tu trabajo

  • Todos los comandos de ejecución incluyen su directorio de trabajo.
  • El comportamiento implementado está separado de las ideas de funciones futuras.
  • El diagrama coincide con los tipos y registros de inyección de dependencias reales.
  • Se describe el alcance de las pruebas sin inventar un porcentaje de cobertura.
  • Solo cambió documentación en el diff del ejercicio.

Solución de problemas

Si Copilot describe clases que nunca leyó, adjunta e inspecciona esos archivos. Si la consola no encuentra la configuración, corrige el directorio de trabajo documentado. Si el README dice que se cubren todos los casos límite, pide la prueba específica que demuestre cada uno.

Práctica independiente

Escribe una entrada de solución de problemas para un archivo JSON ausente usando el comportamiento real del cargador. No prometas una recuperación controlada cuando el código lance una excepción o se limite a registrar un fallo.

Restablecimiento

Guarda la evidencia de documentación, restaura únicamente el README del ejercicio y los registros JSON modificados por la exploración manual y después cierra el espacio de trabajo desechable.

Referencias oficiales

Buscar

Búsqueda en español. Las rutas y los ejemplos ejecutables conservan el texto original.