Implementa ferramentas adicionais


Depois de lançares o track com os primeiros 20 e tantos exercícios e um test runner, o foco deve passar para a implementação de ferramentas adicionais do track.

Há dois tipos de ferramentas de track:

  • Produção: desempenham uma função essencial na experiência de aprendizagem dessa linguagem
  • Manutenção: ajudam na manutenção do track

Ferramentas de produção

Existem (atualmente) três ferramentas de produção:

  • Test Runners: executam os testes de um exercício sobre o código de um estudante. (obrigatório)
  • Representers: criam uma representação normalizada de uma solução. (opcional)
  • Analyzers: avaliam automaticamente as submissões dos estudantes e apresentam comentários ao estilo de um mentor. (opcional)

Ferramentas de manutenção

Para ajudar na manutenção do track, também podes construir:

  • Test Generators: geram/atualizam automaticamente os testes de um exercício e a interface de código do estudante. (opcional)

Que ferramenta implementar?

As ferramentas de produção são mais importantes do que as ferramentas de manutenção. A esta altura, já deves ter implementado um test runner (se não, consulta a documentação Construir um test runner).

Depois de teres construído um test runner, a próxima ferramenta a tratar é o Representer. Há alguma sobreposição entre os objetivos do Representer e do Analyzer, mas recomendamos que construas primeiro o Representer pelas seguintes razões:

  • Os Representers são normalmente (muito) mais fáceis de implementar
  • Os Representers podem ter um impacto muito maior na carga de mentoria do que os analyzers, ao capacitar os mentores
  • Os Representers aplicam-se a todos os exercícios, enquanto os analyzers costumam dirigir-se a exercícios específicos ou a um subconjunto deles

Para começares a construir um Representer, consulta o documento Criar um Representer de raiz.

Por fim, depois de teres implementado um Representer, a última ferramenta a construir é o Analyzer. Para começares a construir um Analyzer, consulta o documento Criar um Analyzer de raiz.

A esta altura, o foco deve provavelmente voltar a estar em acrescentar mais exercícios. Para acelerar a adição de novos exercícios, considera construir um Test Generator.

Implementação

As ferramentas de um track são normalmente (na sua maioria) escritas na linguagem do track.

Caution

Embora tenhas liberdade para usar outras linguagens, cada linguagem adicional vai tornar mais difícil manter o track ou contribuir para ele. Por isso, recomendamos que uses a linguagem do track sempre que possível, porque torna a manutenção e a contribuição mais fáceis.

Publicação

As ferramentas de produção são empacotadas e executadas como um contentor Docker. As imagens Docker das ferramentas são publicadas automaticamente através de um fluxo de trabalho do GitHub Actions.

As ferramentas de manutenção não são publicadas.