Implementa strumenti aggiuntivi


Dopo aver lanciato la traccia con i primi 20+ esercizi e un test runner, l'attenzione dovrebbe spostarsi sull'implementazione del tooling aggiuntivo della traccia.

Esistono due tipi di tooling per la traccia:

  • Produzione: forniscono una funzionalità chiave all'esperienza di apprendimento di quel linguaggio
  • Manutenzione: aiutano con la manutenzione della traccia

Tooling di produzione

Al momento esistono tre strumenti per la produzione:

  • Test Runner: eseguono i test di un esercizio sul codice di uno studente. (obbligatorio)
  • Representer: creano una rappresentazione normalizzata di una soluzione (opzionale)
  • Analyzer: valutano automaticamente le consegne degli studenti e forniscono commenti in stile mentore. (opzionale)

Tooling di manutenzione

Per aiutare con la manutenzione della traccia, si può anche creare:

  • Test Generator: generano e aggiornano automaticamente i test di un esercizio e l'interfaccia del codice dello studente. (opzionale)

Quale strumento implementare?

Gli strumenti di produzione sono più importanti di quelli di manutenzione. A questo punto dovresti aver implementato un Test Runner (in caso contrario, consulta la documentazione su come costruire un test runner).

Una volta costruito un test runner, il prossimo strumento su cui lavorare è il Representer. C'è una certa sovrapposizione tra gli obiettivi del Representer e quelli dell'Analyzer, ma consigliamo di costruire prima il Representer per i seguenti motivi:

  • I Representer sono di solito (molto) più facili da implementare
  • I Representer possono avere un impatto molto maggiore sul carico di mentoring rispetto agli Analyzer, perché danno più potere ai mentori
  • I Representer si applicano a tutti gli esercizi, mentre gli Analyzer di solito riguardano esercizi specifici o un sottoinsieme

Per iniziare a costruire un Representer, consulta il documento Creare un Representer da zero.

Infine, dopo aver implementato un Representer, l'ultimo strumento da costruire è l'Analyzer. Per iniziare a costruire un Analyzer, consulta il documento Creare un Analyzer da zero.

A questo punto, l'attenzione dovrebbe probabilmente tornare ad aggiungere nuovi esercizi. Per velocizzare l'aggiunta di nuovi esercizi, valuta la possibilità di costruire un Test Generator.

Implementazione

Il tooling di una traccia è di solito (per la maggior parte) scritto nel linguaggio della traccia.

Caution

Anche se sei libero di usare altri linguaggi, ogni linguaggio aggiuntivo renderà più difficile mantenere o contribuire alla traccia. Per questo consigliamo di usare il linguaggio della traccia quando possibile, perché rende più facile la manutenzione e il contributo.

Rilascio

Gli strumenti di produzione vengono impacchettati ed eseguiti come container Docker. Le immagini Docker del tooling vengono rilasciate automaticamente usando un workflow di GitHub Actions.

Gli strumenti di manutenzione non vengono rilasciati.