Deadlock Empire - ein Spiel für Entwickler


Wie Sie wissen, ist Habr kein Ort für Spiele, aber wir haben eine Ausnahme gefunden, die unserer Meinung nach hier erwähnenswert ist!

Treffen Sie: Deadlock Empire !

Das Wesentliche des Spiels ist die Verwaltung des Layouts der Flows, deren Code in den Aufgaben angegeben ist. Sie müssen es so verwalten, dass eine Fehlersituation auftritt: Deadlocks, wiederholte Zähler, Erreichen bestimmter Codeabschnitte und andere unvorhergesehene Situationen, die Sie bei der Entwicklung von Multithread-Anwendungen berücksichtigen müssen.

Das Gameplay ist eine schrittweise Ausführung der Programmabläufe im Debugger mit dem Unterschied, dass Sie hier den ausgewählten Thread buchstäblich anweisen, die nächste Codezeile auszuführen, anstatt einen Haltepunkt in seinen Code einzufügen. Normalerweise wird jeweils eine Codezeile ausgeführt. Wenn die Zeile jedoch eine nichtatomare Operation darstellt, muss sie manuell erweitert werden, um die einzelnen Operationen einzeln auszuführen. Sie haben jedoch nicht die vollständige Kontrolle über die Situation: Wenn ein Prozess beispielsweise in einem Mutex blockiert ist, ist er inaktiv, bis ein anderer Thread ihn freigibt.

Aufgaben sind nach Komplexität sortiert und in Abschnitte unterteilt:

  1. Nicht synchronisierter Code . Die Aufgaben in diesem Abschnitt enthalten grundlegende Konzepte dazu, was passiert, wenn Threads, die gemeinsam genutzte threadsichere Ressourcen verwenden, parallel ausgeführt werden.
  2. . , , .
  3. . , .
  4. . , !
  5. . , .
  6. . , : , , !

Der Beispielcode ist in C # geschrieben, und die Synchronisationsprimitive stammen aus .Net. Auch wenn Sie mit dem einen oder anderen nicht vertraut sind, sollten Sie keine Angst haben. Minimale Programmierkenntnisse und die Fähigkeit, auf Englisch zu lesen (alle Aufgaben sind mit Kommentaren und Links zur Dokumentation versehen) rufen Sie höchstwahrscheinlich dazu auf, mindestens die Mitte zu erreichen. Nun, Senioren (sogar 23-Jährige) werden den Chef, der im Finale erscheinen wird, mit Sicherheit besiegen! Und selbst diejenigen, die den Hund bei der Synchronisation von Streams gefressen haben, werden eine gute Zeit haben, interessante Probleme zu lösen, da die Autoren es geschafft haben, sich über das lustig zu machen, was im wirklichen Leben einer der schlimmsten Albträume für den Entwickler ist.

Das Spiel ist nützlich als Lernwerkzeug und wird allen unerfahrenen Entwicklern empfohlen, zumindest in .Net und Java. 

Wir wünschen euch allen einen guten Freitag und einen schnellen Sieg über den Boss! :) :)

All Articles