Implementa herramientas adicionales


Después de lanzar el track con los primeros 20 ejercicios o más y un test runner, el foco debería pasar a implementar herramientas adicionales del track.

Hay dos tipos de herramientas del track:

  • Producción: aportan una pieza clave a la experiencia de aprendizaje de ese lenguaje
  • Mantenimiento: ayudan con el mantenimiento del track

Herramientas de producción

Hay (actualmente) tres herramientas de producción:

  • Test Runners: ejecutan los tests de un ejercicio contra el código del estudiante. (obligatorio)
  • Representers: crean una representación normalizada de una solución (opcional)
  • Analyzers: evalúan automáticamente los envíos de los estudiantes y ofrecen comentarios al estilo de un mentor. (opcional)

Herramientas de mantenimiento

Para ayudar con el mantenimiento del track, también se puede crear:

  • Test Generators: generan y actualizan automáticamente los tests de un ejercicio y la interfaz de código del estudiante. (opcional)

¿Qué herramienta implementar?

Las herramientas de producción son más importantes que las de mantenimiento. A estas alturas, ya deberías haber implementado un Test Runner (si no es así, consulta la documentación para crear un test runner).

Una vez que hayas creado un test runner, la siguiente herramienta en la que trabajar es el Representer. Hay cierto solapamiento entre los objetivos del Representer y los del Analyzer, pero recomendamos crear primero el Representer por los siguientes motivos:

  • Los Representers suelen ser (mucho) más fáciles de implementar
  • Los Representers pueden tener un impacto mucho mayor en la carga de mentoría que los analyzers, ya que empoderan a los mentores
  • Los Representers se aplican a todos los ejercicios, mientras que los Analyzers suelen centrarse en ejercicios concretos o en un subconjunto

Para empezar a crear un Representer, consulta el documento Crear un Representer desde cero.

Por último, una vez implementado un Representer, la última herramienta que queda por crear es el Analyzer. Para empezar a crear un Analyzer, consulta el documento Crear un Analyzer desde cero.

Llegados a este punto, probablemente convenga volver a centrarse en añadir más ejercicios. Para acelerar la incorporación de nuevos ejercicios, plantéate crear un Test Generator.

Implementación

Las herramientas del track normalmente (en su mayor parte) se escriben en el lenguaje del track.

Caution

Aunque eres libre de usar otros lenguajes, cada lenguaje adicional hará que sea más difícil mantener o contribuir al track. Por eso recomendamos usar el lenguaje del track siempre que sea posible, porque hace que mantenerlo o contribuir a él sea más fácil.

Despliegue

Las herramientas de producción se empaquetan y se ejecutan como un contenedor de Docker. Las imágenes Docker de las herramientas se despliegan automáticamente mediante un flujo de trabajo de GitHub Actions.

Las herramientas de mantenimiento no se despliegan.