Un track è composto da molte parti diverse.
La configurazione e i metadati di un track sono specificati nel file config.json. Il file elenca gli esercizi del track, i concetti, le impostazioni dell'editor e molto altro. Dai un'occhiata alla documentazione di config.json.
Tutti gli esercizi sui concetti e gli esercizi di pratica di un track coinvolgono dei concetti. Questi concetti sono entità a sé stanti. Consulta la documentazione per maggiori informazioni.
I concetti insegnati negli esercizi sui concetti di un track formano un syllabus. Il syllabus viene mostrato agli studenti come una mappa concettuale. Consulta la documentazione sulla mappa concettuale per scoprire come costruire la mappa concettuale di un syllabus.
Per maggiori informazioni su come progettare un syllabus, consulta la documentazione sul syllabus.
I track hanno due tipi di esercizi:
Ogni esercizio ha una sezione "Approfondimenti" opzionale, che può contenere:
Alcuni file non sono specifici dei singoli esercizi, ma si applicano a tutti gli esercizi. Consulta la documentazione per maggiori informazioni.
Ogni track ha un paio di file di documentazione obbligatori. Consulta la documentazione per maggiori informazioni.
Alcune parti del track possono essere visualizzate nei widget.
Tutti i documenti dovrebbero seguire la guida di stile. Anche i documenti Markdown dovrebbero seguire i nostri standard Markdown.
csharp ├── config | ├── exercise_readme.go.tmpl | └── maintainers.json ├── docs | ├── ABOUT.md | ├── INSTALLATION.md | ├── LEARNING.md | ├── RESOURCES.md | └── TESTS.md ├── concepts | └── numbers | ├── about.md | ├── introduction.md | └── links.json └── exercises | ├── concept | | └── cars-assemble | | ├── .docs | | | ├── hints.md | | | ├── introduction.md | | | └── instructions.md | | ├── .meta | | | ├── config.json | | | ├── design.md | | | └── Exemplar.cs (track-specific) | | ├── CarsAssemble.cs (track-specific) | | ├── CarsAssemble.csproj (track-specific) | | └── CarsAssembleTests.cs (track-specific) | ├── practice | | └── leap | | └── .docs | | | └── instructions.md | | └── .meta | | | ├── config.json | | | └── Example.cs (track-specific) | | ├── Leap.cs (track-specific) | | ├── Leap.csproj (track-specific) | | └── LeapTests.cs (track-specific) | └── shared | └── .docs | ├── debug.md | ├── help.md | └── tests.md └── config.json
A ogni track viene assegnata (automaticamente) una categoria di manutenzione, che determina i permessi del repo GitHub del maintainer del track.
Quando fai il merge di una PR del track che tocca un esercizio, si innesca un nuovo test di tutte le ultime iterazioni pubblicate delle soluzioni degli studenti. Per gli esercizi più popolari, si tratta di un'operazione molto onerosa (nel caso estremo, 70.000 esecuzioni di test per Hello World in Python!).
Ti invitiamo a cercare di evitare di farlo inutilmente.
Le soluzioni non verranno testate di nuovo se il commit unito:
.docs o .meta, o altri file con cui gli utenti non interagiscono[no important files changed] nel corpo del commit.Le soluzioni verranno testate di nuovo se il commit unito soddisfa entrambe queste condizioni:
[no important files changed] nel corpo del commit.meta/config.json):
Alcuni esempi:
[no important files changed], quindi non sono stati eseguiti test