Deadlock Empire: un juego para desarrolladores


Habr, como saben, no es un lugar para juegos, pero encontramos una excepción, que, en nuestra opinión, ¡vale la pena mencionar aquí!

Conoce a: Deadlock Empire !

La esencia del juego es administrar el diseño de los flujos, cuyo código se proporciona en las tareas. Debe administrarlo de tal manera que se logre una situación de error: puntos muertos, contadores repetidos, llegar a ciertas secciones de código y otras situaciones imprevistas que deben tenerse en cuenta al desarrollar aplicaciones de subprocesos múltiples.

El juego es una ejecución paso a paso de los flujos de programa en el depurador con la diferencia de que aquí literalmente le está diciendo al hilo seleccionado que ejecute la siguiente línea de código, en lugar de insertar un punto de interrupción en su código. Por lo general, se ejecuta una línea de código a la vez, pero si la línea representa una operación no atómica, debe expandirse manualmente para realizar sus operaciones constituyentes una por una. Sin embargo, usted no tiene el control total de la situación: si un proceso está bloqueado, por ejemplo, en un mutex, estará inactivo hasta que otro hilo lo libere.

Las tareas se ordenan por complejidad y se organizan en secciones:

  1. Código no sincronizado . Las tareas en esta sección proporcionan conceptos básicos de lo que sucede cuando los subprocesos que usan recursos compartidos seguros para subprocesos se ejecutan en paralelo.
  2. . , , .
  3. . , .
  4. . , !
  5. . , .
  6. . , : , , !

El código de muestra está escrito en C #, y las primitivas de sincronización se toman de .Net, pero incluso si no está familiarizado con uno u otro, no debe tener miedo. Es muy probable que los conocimientos mínimos de programación y la capacidad de leer en inglés (todas las tareas se proporcionan con comentarios y enlaces a la documentación) lo llamen para llegar al menos al medio. Bueno, los adultos mayores (incluso los de 23 años) ciertamente vencerán al jefe que aparecerá en la final. E incluso aquellos que se comieron al perro en la sincronización de transmisiones lo pasarán bien resolviendo problemas interesantes, ya que los autores lograron burlarse de lo que en la vida real es una de las peores pesadillas para el desarrollador.

El juego es útil como herramienta de aprendizaje y se recomienda estrictamente a todos los desarrolladores novatos, al menos en .Net y Java. 

¡Les deseamos a todos un buen viernes y una pronta victoria sobre el Jefe! :)

All Articles