Awesome CopilotAdventures

Documentação do produto verificada

Analise e documente a biblioteca C#

O Copilot pode propor uma explicação, mas o código e o comportamento observado são a autoridade. #codebase faz recuperação de contexto; não garante que todos os arquivos-fonte foram inspecionados nem que toda alegação esteja correta.

Resumo do laboratório

Lupas acompanham conexões entre um terminal, registros de biblioteca, armazenamento e uma folha de documentação.

Ilustração conceitual original (SVG)

Rastreie um fluxo de trabalho de biblioteca existente antes de documentá-lo.

Em resumo Sua rota
Nível e tempo 200; 45 minutos (estimativa de facilitação)
Ação inicial Siga uma operação de empréstimo do console até o armazenamento e seus testes.
Materiais do aluno Baixe 02-csharp.zip
Workspace Abra a raiz do kit extraído; execute a baseline de . relativa a essa raiz
Verificação inicial esperada Os testes fornecidos passam. Os novos requisitos de funcionalidade ainda precisam de testes próprios.
Ajuda de configuração Baixe, extraia, Git local e GitHub opcional

[!NOTE] As referências de origem devem nomear tipos reais, registros e diretórios de trabalho.

Conceitos · Primeira tarefa · Lista de evidências · Redefinir

Objetivos de aprendizagem

  • Rastreie o comportamento pelo console, pelo núcleo da aplicação e pela infraestrutura.
  • Explique com precisão exemplares físicos de livros, empréstimos e usuários da biblioteca.
  • Produza instruções de execução que funcionem a partir de um diretório declarado.

Antes de começar

Conclua a configuração de C# e prepare 02-csharp. A fixture incluída é AccelerateDevGHCopilot. Não é necessário clonar um repositório remoto nem criar um novo repositório GitHub.

Conceitos e casos de uso

Camada Responsabilidade Evidências a inspecionar
Console Menu/entrada e apresentação Program.cs, ConsoleApp.cs
Núcleo da aplicação Decisões sobre empréstimos/associações e interfaces Serviços, entidades, interfaces
Infraestrutura Carregar/preencher/salvar JSON JsonData, repositórios JSON
Testes Contratos selecionados de serviços com substitutos tests/UnitTests

Cenário do exercício

Um colega entregou uma pequena aplicação de console de biblioteca sem documentação suficiente de integração. Escreva um README que diferencie funcionalidades implementadas, limitações e trabalho proposto.

Tarefa 1 - Estabeleça a fonte e a linha de base

  1. Abra a raiz preparada. Inspecione os quatro arquivos de projeto.

  2. Execute:

    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. Registre os comandos, testes, erros e avisos. Não copie uma transcrição de outra execução.

  4. Leia src/Library.Console/appSettings.json. O console usa seu diretório de trabalho para localizar esse arquivo e o diretório Json.

Tarefa 2 - Peça um rastreamento fundamentado nas fontes

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.

Verifique cada relação manualmente. Um título de livro não é um BookItem físico. Um Loan relaciona um exemplar físico a um usuário da biblioteca e contém suas próprias datas.

---
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: Limites de dependência da biblioteca C#
    accDescr: O console depende de contratos de serviços, os serviços da aplicação dependem de contratos de repositórios e a infraestrutura JSON implementa o comportamento de armazenamento.
    class ConsoleApp
    class LoanService
    class ILoanRepository
    class JsonLoanRepository
    class JsonData
    ConsoleApp --> LoanService : invoca pelo contrato de serviço
    LoanService --> ILoanRepository : depende de
    JsonLoanRepository ..|> ILoanRepository : implementa
    JsonLoanRepository --> JsonData : carrega e persiste

Legenda. Os retângulos são tipos do código. As setas contínuas são dependências/chamadas; a seta tracejada de realização indica implementação de interface.

Explicação. O diagrama descreve papéis de dependência, não comprova que todos os caminhos de falha são testados. Confirme os registros reais de DI e os métodos desta fixture em vez de presumir um modelo genérico de “arquitetura limpa”.

Tarefa 3 - Planeje e escreva um README útil

  1. Em Plan, esboce configuração, diretório de execução, arquitetura, arquivos de dados, testes, fluxos implementados, limitações e restauração.

  2. Exija referências às fontes para cada alegação.

  3. Em Agent, escreva somente o README. Não “melhore” o código de produção durante uma tarefa de documentação.

  4. Documente esta inicialização do console a partir do projeto copiado:

    cd src/Library.Console
    dotnet run --no-build
    
  5. Explique que operações de devolução/renovação podem modificar o JSON na cópia; use registros sintéticos e inspecione as alterações antes da restauração.

Verifique seu trabalho

  • Todos os comandos de execução incluem seu diretório de trabalho.
  • O comportamento implementado está separado de ideias para funcionalidades futuras.
  • O diagrama corresponde aos tipos reais e aos registros de DI.
  • O escopo dos testes é descrito sem uma porcentagem de cobertura fabricada.
  • Somente a documentação mudou no diff do exercício.

Solução de problemas

Se o Copilot descrever classes que nunca leu, anexe e inspecione esses arquivos. Se o console não conseguir encontrar as configurações, corrija o diretório de trabalho documentado. Se o README disser que todos os casos extremos estão cobertos, peça o teste específico que comprova cada um.

Prática independente

Escreva uma entrada de solução de problemas para um arquivo JSON ausente usando o comportamento real do carregador. Não prometa recuperação controlada quando o código lança uma exceção ou apenas registra uma falha.

Restauração

Salve as evidências da documentação, restaure somente o README do exercício e quaisquer registros JSON modificados pela exploração manual e feche o workspace descartável.

Referências oficiais

Buscar

Busca em português do Brasil. Os caminhos e os exemplos executáveis mantêm o texto original.