Deadlock Empire - un jeu pour les développeurs


Habr, comme vous le savez, n'est pas un lieu de jeux, mais nous avons trouvé une exception, qui, à notre avis, mérite d'être mentionnée ici!

Rencontrez: Deadlock Empire !

L'essence du jeu est de gérer la disposition des flux, dont le code est donné dans les tâches. Vous devez le gérer de manière à atteindre une situation d'erreur: blocages, compteurs répétés, atteindre certaines sections de code et autres situations imprévues qui doivent être réalisées lors du développement d'applications multi-thread.

Le gameplay est une exécution étape par étape des flux de programme dans le débogueur, à la différence que vous dites ici littéralement au thread sélectionné d'exécuter la ligne de code suivante, plutôt que d'insérer un point d'arrêt dans son code. Habituellement, une ligne de code est exécutée à la fois, mais si la ligne représente une opération non atomique, elle doit être développée manuellement pour effectuer ses opérations constitutives une par une. Cependant, vous ne contrôlez pas complètement la situation: si un processus est bloqué, par exemple, sur un mutex, il sera inactif jusqu'à ce qu'un autre thread le libère.

Les tâches sont triées par complexité et organisées en sections:

  1. Code non synchronisé . Les tâches de cette section fournissent des concepts de base sur ce qui se passe lorsque des threads qui utilisent des ressources partagées sécurisées s'exécutent en parallèle.
  2. . , , .
  3. . , .
  4. . , !
  5. . , .
  6. . , : , , !

L'exemple de code est écrit en C # et les primitives de synchronisation sont extraites de .Net, mais même si vous ne connaissez ni l'un ni l'autre, vous ne devriez pas avoir peur. Les connaissances minimales en programmation et la capacité de lire en anglais (toutes les tâches sont fournies avec des commentaires et des liens vers la documentation) sont très susceptibles de vous appeler pour atteindre au moins le milieu. Eh bien, les seniors (même les 23 ans) vont certainement vaincre le boss qui apparaîtra en finale! Et même ceux qui ont mangé le chien sur la synchronisation des flux auront du bon temps à résoudre des problèmes intéressants, car les auteurs ont réussi à se moquer de ce qui dans la vie réelle est l'un des pires cauchemars pour le développeur.

Le jeu est utile comme outil d'apprentissage et est strictement recommandé à tous les développeurs novices, au moins en .Net et Java. 

Nous vous souhaitons à tous un bon vendredi et une victoire rapide sur le Boss! :)

All Articles