追加のツールを実装する


最初の20以上の演習とテストランナーでトラックを立ち上げたら、次は追加のトラックツールの実装に目を向けましょう。

トラックツールには2つの種類があります。

  • プロダクション:その言語の学習体験に欠かせない機能を提供します。
  • メンテナンス:トラックのメンテナンスを助けます。

プロダクションツール

プロダクション用のツールは(現在)3つあります。

  • テストランナー:演習のテストを学習者のコードに対して実行します。(必須)
  • リプレゼンター:解答を正規化した表現を作成します。(任意)
  • アナライザー:学習者の提出物を自動で評価し、メンターのようなコメントを提供します。(任意)

メンテナンスツール

トラックのメンテナンスを助けるために、次のようなツールも作れます。

  • テストジェネレーター:演習のテストと、学習者が使うコードのインターフェースを自動生成・更新します。(任意)

どのツールを実装するか?

プロダクションツールはメンテナンスツールよりも重要です。 この時点で、テストランナーは実装済みのはずです(まだの場合は、テストランナーの構築に関するドキュメントを確認してください)。

テストランナーを作り終えたら、次に取り組むツールはリプレゼンターです。 リプレゼンターとアナライザーは目的が一部重なりますが、次の理由から、まずリプレゼンターを作ることをおすすめします。

  • リプレゼンターのほうが通常は(はるかに)実装が簡単です。
  • リプレゼンターはメンターの力を引き出せるため、メンタリングの負担に対してアナライザーよりもはるかに大きな効果を発揮します。
  • リプレゼンターはすべての演習に適用できますが、アナライザーは通常、特定の演習やその一部だけを対象にします。

リプレゼンターの作成を始めるには、リプレゼンターを一から作成するドキュメントを確認してください。

最後に、リプレゼンターを実装したあとに取り組むツールはアナライザーです。 アナライザーの作成を始めるには、アナライザーを一から作成するドキュメントを確認してください。

ここまで来たら、おそらくまた演習を増やすことに集中するのがよいでしょう。 新しい演習を増やすスピードを上げるには、テストジェネレーターの作成を検討してみましょう。

実装

トラックツールは通常、(ほとんどが)そのトラックの言語で書かれています。

Caution

他の言語を使うこともできますが、言語が増えるほど、トラックのメンテナンスやコントリビュートは難しくなります。 そのため、メンテナンスやコントリビュートがしやすくなるよう、できるだけトラックの言語を使うことをおすすめします。

デプロイ

プロダクションツールはDockerコンテナとしてパッケージ化され、実行されます。 ツールのDockerイメージは、GitHub Actionsのワークフローを使って自動的にデプロイされます。

メンテナンスツールは_デプロイされません_。