Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Reclamação] Organização/disponibilização do repositório

O conteúdo e didática do curso estão ótimos. Por outro lado está muito complicado de implementar e praticar. O repositório que foi passado "https://github.com/alura-cursos/curso-alura" só tem 1 branch e não está dividido por aula.

Por exemplo, a aula "Separando os agentes do supervisor" do módulo 01 não tem o código disponível nem na própria aula e nem no repositório. A organização dos materiais está difícil demais de seguir. Tem que dar pause no vídeo pra copiar o código.

1 resposta

Olá, Ewerson. Como vai?

Compreendo perfeitamente a sua frustração. Quando estamos empolgados com o conteúdo e a didática está boa, o que mais queremos é colocar a mão na massa rapidamente, e barreiras no repositório acabam quebrando o ritmo dos estudos. Ter que pausar o vídeo para copiar código linha por linha desvia o foco do aprendizado principal, que é entender a arquitetura de agentes.

Para ajudar a mitigar esse problema imediato e permitir que você avance no curso sem ficar travado, trago algumas sugestões práticas de como lidar com esse cenário no Git e como estruturar o fluxo de desenvolvimento do projeto:

  • Histórico de Commits: Como o projeto possui apenas uma branch principal (geralmente a main ou master), uma alternativa é explorar o histórico de commits do repositório. Muitas vezes, o instrutor commita o código ao final de cada módulo ou aula. Você pode rodar o comando git log --oneline no seu terminal para ver a lista de alterações e navegar até o ponto exato da aula desejada usando o comando git checkout <hash_do_commit>.
  • Uso de Stashes e Branches Locais: Para evitar se perder enquanto acompanha as aulas, uma boa prática é criar suas próprias divisões locais. Sempre que iniciar uma aula nova, crie uma branch específica no seu computador com o comando git checkout -b nome-da-aula. Isso protege o seu código anterior e deixa seu ambiente organizado.

Para ilustrar o cenário ideal de como esses componentes de software deveriam estar isolados na arquitetura que você está estudando, veja a separação de responsabilidades entre as camadas:

Abaixo, apresento uma estrutura básica em formato de pseudocódigo que exemplifica a lógica de separação entre o Supervisor e os Agentes Subordinados. Você pode utilizá-la como base para estruturar os seus arquivos locais sem depender inteiramente dos prints do vídeo:

# Exemplo de estrutura para separar o Supervisor dos Agentes

Definir Agente_Pesquisador:
    Instruções: "Busque dados brutos na web sobre o tema X."
    Função: pesquisar()

Definir Agente_Escritor:
    Instruções: "Consolide os dados recebidos em um relatório claro."
    Função: escrever()

Definir Supervisor:
    Instruções: "Coordene o fluxo de trabalho. Delegue a pesquisa primeiro e o relatório depois."
    Lista_de_Agentes: [Agente_Pesquisador, Agente_Escritor]
    
    Função gerenciar_fluxo(comando_usuario):
        dados = Agente_Pesquisador.pesquisar(comando_usuario)
        resultado_final = Agente_Escritor.escrever(dados)
        Retornar resultado_final

Esta divisão em arquivos separados (ex: pesquisador.py, escritor.py e supervisor.py) ajuda a manter o código limpo e modular, exatamente como proposto nos conceitos de Agent to Agent (A2A) e Backend for Agents (BFA).

Além disso, obrigado por reportar essa situação. Feedbacks sobre a estrutura dos repositórios são fundamentais para que as atualizações e correções nos cursos sejam feitas pelas equipes de conteúdo da plataforma.

Espero que possa ter lhe ajudado!