Реалізуйте додатковий інструментарій


Коли трек має перші 20+ вправ і Test Runner, увагу варто зосередити на реалізації додаткового інструментарію треку.

Інструментарій треку буває двох видів:

  • Продакшн: відіграє ключову роль у навчанні цієї мови
  • Супровід: полегшує роботу над треком

Інструментарій для продакшну

Наразі є три інструменти для продакшну:

  • Test Runners: запускають тести вправи на коді студента. (обовʼязково)
  • Representers: створюють нормалізоване представлення рішення (необовʼязково)
  • Analyzers: автоматично оцінюють рішення студентів і дають коментарі в стилі наставника. (необовʼязково)

Інструментарій для супроводу

Щоб полегшити супровід треку, можна також створити:

  • Test Generators: автоматично генерують або оновлюють тести вправи та інтерфейс коду студента. (необовʼязково)

Який інструмент реалізувати?

Інструменти для продакшну важливіші за інструменти для супроводу. На цьому етапі Test Runner уже має бути реалізовано (якщо ні, зазирнімо до документації, як створити Test Runner).

Коли Test Runner готовий, наступним інструментом, за який варто взятися, буде Representer. Цілі Representer-а й Analyzer-а частково збігаються, але ми радимо спершу створити Representer з таких причин:

  • Representer зазвичай (набагато) легше реалізувати
  • Representer може значно сильніше вплинути на навантаження на наставників, ніж Analyzer, бо розширює їхні можливості
  • Representer застосовують до всіх вправ, тоді як Analyzer зазвичай націлений на конкретні вправи або на їхню підмножину

Щоб почати створювати Representer, зазирнімо до документа «Створення Representer-а з нуля».

Нарешті, після реалізації Representer-а останнім інструментом, який варто створити, буде Analyzer. Щоб почати створювати Analyzer, зазирнімо до документа «Створення Analyzer-а з нуля».

На цьому етапі увагу, ймовірно, варто знову зосередити на додаванні нових вправ. Щоб прискорити додавання нових вправ, варто розглянути створення Test Generator.

Реалізація

Інструментарій треку зазвичай (здебільшого) написано мовою треку.

Caution

Ми можемо вільно використовувати інші мови, але кожна додаткова мова ускладнює супровід треку та долучення до нього. Тому ми радимо, де це можливо, використовувати мову треку, адже це полегшує і супровід, і долучення.

Розгортання

Інструменти для продакшну пакують і запускають як Docker-контейнер. Docker-образи інструментарію розгортаються автоматично за допомогою робочого процесу GitHub Actions.

Інструменти для супроводу не розгортають.