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

Ilustración conceptual original (SVG)
| 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
-
Abre la raíz preparada. Inspecciona los cuatro archivos de proyecto.
-
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 -
Registra los comandos, las pruebas, los errores y las advertencias. No copies una transcripción de otra ejecución.
-
Lee
src/Library.Console/appSettings.json. La consola usa su directorio de trabajo para localizar este archivo y el directorioJson.
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
-
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.
-
Exige referencias al código fuente para cada afirmación.
-
En Agent, escribe únicamente el README. No «mejores» el código de producción durante una tarea de documentación.
-
Documenta este inicio de la consola desde el proyecto copiado:
cd src/Library.Console dotnet run --no-build -
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.