Necesitaría diseñar un diseño de front-end sólido para mantener la codificación diferente y la validación primaria. Esta parte no me será muy difícil para los casos más simples. Para hacer algo como HackerRank, TopCoder necesitas algunas herramientas y trucos avanzados.
He encontrado una imagen general de la arquitectura del sistema:
- ¿Cómo se usa '===' en jQuery?
- ¿Por qué la gente usa clearfix en lugar de display: inline-block y width: 100% en CSS?
- Cómo construir un sitio en un segundo dominio de WordPress adjunto a mi primero
- Cómo crear más espacio entre un botón y un cuadro de texto en HTML o CSS
- ¿Cómo se asoció el término "enviar" con productos digitales que no se envían realmente?
La arquitectura interna se representa en la imagen a continuación:
El back-end se puede conectar al front-end de muchas maneras, como:
El back-end puede ser solo un servidor API, el front-end los consume con un sistema de autenticación adecuado como: JWT, OAuth
El compilador se puede usar en paralelo de varias maneras en las que puedo pensar:
Los problemas enviados pueden ser empujados a diferentes colas de espera por sus lenguajes de programación. Luego, se pueden compilar, validar. Luego, el resultado / respuesta se puede enviar a través de http / socket.
Si es posible la ejecución paralela en el servidor, puede implementar eso para un mejor rendimiento.
Hay muchas maneras posibles de hacer la misma tarea.
Para una implementación real que puede darle algunas ideas está aquí: DMOJ / juez
Diviértete 🙂