Deadlock Empire - game untuk pengembang


Habr, seperti yang Anda tahu, bukan tempat untuk permainan, tetapi kami menemukan satu pengecualian, yang, menurut pendapat kami, layak disebutkan di sini!

Bertemu: Deadlock Empire !

Inti dari permainan ini adalah untuk mengatur tata letak arus, kode yang diberikan dalam tugas. Anda perlu mengelolanya sedemikian rupa untuk mencapai situasi kesalahan: kebuntuan, penghitung berulang, mencapai bagian kode tertentu dan situasi tak terduga lainnya yang perlu Anda ketahui ketika mengembangkan aplikasi multithreaded.

Gameplay adalah eksekusi langkah demi langkah dari aliran program dalam debugger dengan perbedaan bahwa di sini Anda benar-benar memberi tahu utas yang dipilih untuk mengeksekusi baris kode berikutnya, daripada memasukkan breakpoint ke dalam kodenya. Biasanya satu baris kode dieksekusi pada satu waktu, tetapi jika garis tersebut mewakili operasi non-atom, ia harus diperluas secara manual untuk melakukan operasi penyusunnya satu per satu. Namun, Anda tidak sepenuhnya mengendalikan situasi: jika suatu proses diblokir, misalnya, pada mutex, itu tidak akan aktif sampai utas lain melepaskannya.

Tugas diurutkan berdasarkan kompleksitas dan disusun menjadi beberapa bagian:

  1. Kode tidak disinkronkan . Tugas-tugas di bagian ini memberikan konsep dasar tentang apa yang terjadi ketika utas yang menggunakan sumber daya utas yang dibagikan berjalan secara paralel.
  2. . , , .
  3. . , .
  4. . , !
  5. . , .
  6. . , : , , !

Kode sampel ditulis dalam C #, dan primitif sinkronisasi diambil dari .Net, tetapi bahkan jika Anda tidak terbiasa dengan salah satu atau yang lain, Anda tidak perlu takut. Pengetahuan pemrograman minimum dan kemampuan membaca dalam bahasa Inggris (semua tugas diberikan dengan komentar dan tautan ke dokumentasi) sangat mungkin untuk memanggil Anda untuk mencapai setidaknya di tengah. Nah, manula (bahkan yang berusia 23 tahun) pasti akan mengalahkan bos yang akan muncul di final! Dan bahkan mereka yang memakan anjing pada sinkronisasi aliran akan memiliki waktu yang baik menyelesaikan masalah yang menarik, karena penulis berhasil mengolok-olok apa yang dalam kehidupan nyata adalah salah satu mimpi terburuk bagi pengembang.

Gim ini bermanfaat sebagai alat pembelajaran dan sangat disarankan untuk semua pengembang pemula, setidaknya di .Net dan Java. 

Semoga hari Jumat yang baik dan kemenangan yang cepat atas Bos! :)

All Articles