实现额外的工具


在为赛道上线首批 20 多个练习并配置好测试运行器之后,重点就应该转向实现更多赛道工具。

赛道工具分为两类:

  • 生产类:为该语言的学习体验提供关键功能
  • 维护类:帮助维护赛道

生产类工具

目前生产类工具有三种:

  • 测试运行器:用学员的代码运行练习的测试。(必需)
  • 表示器:为提交的解答生成标准化表示(可选)
  • 分析器:自动评估学员提交的代码,并提供导师式的点评。(可选)

维护类工具

为了帮助维护赛道,你还可以构建:

  • 测试生成器:自动生成或更新练习的测试和学员代码的接口。(可选)

该实现哪个工具?

生产类工具比维护类工具更重要。 到这时,你应该已经实现了一个测试运行器(如果还没有,请查看构建测试运行器的文档)。

构建好测试运行器之后,下一个要做的工具就是表示器。 表示器和分析器的目标有一些重叠,但我们建议先构建表示器,原因如下:

  • 表示器通常(要)容易实现得多
  • 相比分析器,表示器能通过赋能导师,对指导工作量产生大得多的影响
  • 表示器适用于所有练习,而分析器通常只针对特定练习或一部分练习

要开始构建表示器,请查看从零开始创建表示器文档。

最后,在实现表示器之后,最后一个要构建的工具是分析器。 要开始构建分析器,请查看从零开始创建分析器文档。

到这时,重点大概应该重新转回到添加更多练习上。 为了加快添加新练习的速度,可以考虑构建一个测试生成器。

实现

赛道工具通常(大多)是用赛道本身的语言编写的。

Caution

虽然你完全可以使用其他语言,但每增加一种语言,都会让赛道的维护和贡献变得更困难。 因此,我们建议尽量使用赛道本身的语言,因为这样会让维护和贡献都更容易。

部署

生产类工具会打包成 Docker 容器来运行。 工具的 Docker 镜像通过 GitHub Actions 工作流自动部署。

维护类工具_不会_部署。