Трек складається з багатьох різних частин.
Конфігурація та метадані треку задаються у файлі config.json. У ньому перелічено вправи треку, концепції, налаштування редактора та багато іншого. Більше інформації можна знайти в документації config.json.
Усі концептуальні та практичні вправи треку залучають концепції. Ці концепції є окремими сутностями самі по собі. Більше інформації можна знайти в документації.
Концепції, які викладають у концептуальних вправах треку, формують силабус. Силабус показують учням як карту концепцій. Про те, як побудувати карту концепцій для силабусу, розповідає документація про карту концепцій.
Про те, як проєктувати силабус, можна дізнатися з документації про силабус.
Треки мають два типи вправ:
Кожна вправа має необовʼязковий розділ Dig Deeper, який може містити:
Деякі файли не стосуються окремих вправ, а стосуються всіх вправ. Більше інформації можна знайти в документації.
Кожен трек має кілька обовʼязкових файлів документації. Більше інформації можна знайти в документації.
Деякі частини треку можна показувати у віджетах.
Усі документи мають відповідати посібнику зі стилю. Документи Markdown також мають відповідати нашим стандартам 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
Кожному треку (автоматично) призначають категорію обслуговування, яка визначає права доступу супровідника треку до GitHub-репозиторію.
Коли ми зливаємо PR треку, який зачіпає вправу, це запускає повторне тестування всіх останніх опублікованих ітерацій рішень учнів. Для популярних вправ це дуже дорога операція (70 000 запусків тестів для Python Hello World у крайньому випадку!).
Радимо намагатися не робити цього без потреби.
Рішення не будуть протестовані повторно, якщо злитий коміт або:
.docs або .meta, чи інші файли, з якими користувачі не взаємодіють,[no important files changed] у тілі коміту.Рішення будуть протестовані повторно, якщо злитий коміт водночас:
[no important files changed] у тілі коміту.meta/config.json):
Кілька прикладів:
[no important files changed], тому тести не запускалися