¿Qué técnicas usa Codeacademy para editar e imprimir la salida de un código?

Hace unos días, también estaba buscando la implementación de backend de la academia de códigos, pero no pude encontrar ningún buen recurso en ella. Siempre pensé en tener un terminal en el navegador y debería poder codificar en cualquier lugar sin configurar ningún entorno.

Después de mucho excavar en la implementación del portátil ` IPython` . Encontré una manera de crear mi propio terminal basado en navegador web.

El mayor problema al hacer shell en línea es la seguridad

¿Por qué?

porque el código malicioso y vulnerable puede bloquear el servidor y nadie quiere que su servidor se bloquee y yo también. En este momento, Docker se ha convertido en una tecnología genial y estaba pensando en probarlo. Docker básicamente proporciona un contenedor de Linux sandbox y, por lo tanto, si alguien ejecuta un código malvado, bloqueará ese contenedor en particular, no todo su servidor.

Puede obtener más información sobre Docker en Build, Ship and Run Any App, Anywhere

Ahora llegando a la impelmentation:

  1. Use la consulta ajax para enviar el fragmento de código del navegador al servidor
  2. Ejecute un subproceso para ejecutar este código dentro del servidor. Recuerde ejecutar dentro del contenedor que discutí.
  3. Devuelve el resultado del servidor al navegador.

La implementación en vivo está disponible aquí.
Página en herokuapp.com

También he escrito un blog sobre esto, puedes consultarlo.
Leer-evaluar-imprimir-bucle (REPL)