fga-eps-mds/2023.1-RelatorioGitPython

Arquitetura de Software

gabrielrosa09 opened this issue · 1 comments

Issue de Estudos em Arquitetura de Software

Descrição

Esta issue tem como objetivo reunir recursos e materiais de estudos sobre Arquitetura de Software, visando aprimorar o conhecimento do grupo em torno do assunto.

Tarefas

  • Pesquisar e compartilhar artigos, livros e vídeos relevantes sobre o tema.
  • Apresentar projetos e soluções que envolvam aspectos de Arquitetura de Software.

Recursos sugeridos

  • Playlist Youtube: "Arquitetura de Software", do Canal Eu TI Ensino
  • Artigo: "Arquitetura de Software: Desenvolvimento orientado para arquitetura", do Site DevMedia
  • Comunidade: Arquitetura de Software no Reddit.

Biblioteca para gerar relatórios de repositórios Git em Python

Para criar uma biblioteca em Python para gerar relatórios de repositórios Git, podemos seguir uma abordagem modular e orientada a objetos. Uma sugestão de arquitetura de software que você pode usar seria:

Classe GitRepository

Esta classe será responsável por extrair os dados do repositório Git usando a biblioteca GitPython e retornar uma lista de objetos GitCommit.

Classe GitCommit

Esta classe conterá informações sobre um commit, como autor, data, mensagem e alterações no código.

Classe GitReport

Esta classe será responsável por gerar o relatório com base nos dados de GitRepository e GitCommit. Ela deve ser capaz de filtrar os dados por usuário ou equipe, e também por um período de tempo específico.

Classe GitReportWriter

Esta classe será responsável por gravar o relatório em um arquivo de texto.

Na prática

Com essa arquitetura, podemos criar métodos para cada uma das classes para lidar com as tarefas específicas que elas precisam realizar. Por exemplo, a classe GitReport pode ter um método para calcular a quantidade de commits por usuário ou equipe e outro para a quantidade de issues fechadas.

Para criar um programa que use essa biblioteca, podemos criar uma interface de linha de comando que permita ao usuário especificar o diretório do repositório Git e os parâmetros de filtragem. Em seguida, podemos instanciar a classe GitRepository, extrair os dados e passá-los para a classe GitReport para gerar o relatório. Por fim, podemos chamar a classe GitReportWriter para gravar o relatório em um arquivo de texto.