نگاهی به باگ بامزه امروز چس دات کام و گپی در مورد یک مهارت مهم: ترابل شوت سیستماتیک

من همه امروز رو مشغول ترابل شوتینگ مشکل ۴ تا سرور بودم و هنوزم حل نشده. برای حل مشکلات کامپیوتری استراتژی های مختلفی هست ولی در واقع خلاصه اشون اینه که کافیه منظم فکر کنین، شواهد رو کنار هم بچنین و اگر گزاره های کافی داشته باشین مشکل دیده می شه. اگر بتونین مشکل رو تکرار کنین احتمال پیدا کردنش بسیار بیشتره و اگر گزاره های بیشتر و بیشتری کنار هم بچینین احتمالا راه حل رو دارین.

به عبارت دیگه می گن «توضیح دقیق یک مشکل در دنیای کامپیوتر برابر است با حل اون مشکل». اما مشکل آماتورها موقع رفع خطا کجاست؟ هی حدس می زنن شاید مشکل فلان جا باشه و می رن سراغ حل اون مساله و بعد که مشکل حل نمی شه یه حدس دیگه می زنن و می رن اون رو حل کنن. شبیه تک تیراندازی که به جای هدفگیری دقیق و زدن یک تیر، دائما به اطراف شلیک می کنه به امید اینکه به هدف بزنه (: گاهی هم کار می کنه ولی روش صحیحی نیست.

حالا مشکل چی بوده؟

  • بعضی ها یکهو نتونستن از اپ مشهورترین سایت شطرنج یعنی چس دات کام بازی کنن

مشکل چی می تونه باشه؟ این سایت مشتری های پولی داره و باید سریع مشکل رو حل کنه. در چند قدم اول این گزاره ها اضافه شدن:

  • کسانی که مشکل دارن همه سعی میکنن بازی جدید شروع کنن
  • کسانی که مشکل دارن همه روی دیوایس های آی او اس هستن

بعد از چند قدم دیگه این گزاره اضافه می شه:

  • کسانی که مشکل دارن همه آیپدهای قدیمی دارن

هنوز حدس خیلی سخته. ولی دو گزاره مستقل از تحقیقات مستقیم که بدم احتمالا بعضی هاتون می تونین حدس بزنین مشکل چیه:

  • آیپدهای قدیمی ۳۲ بیتی بودن
  • برای شروع بازی، شماره سریال یونیک بازی به دستگاه ارسال می شه و توی هر حرکت استفاده می شه

بازم گزاره لازمه؟

  • تعداد بازی های سایت به ۲ میلیارد و ۱۴۷ میلیون و ۴۳۸ هزار و ۶۴۷ بازی رسیده، یعنی ۲ به توان ۳۱ منفی یک

امیدوارم تا الان حدس زده باشین، متغیری که کد بازی رو نگه می داره در آیپد ۳۲ بیتی است و حالا شماره بازی بزرگتر از ظرفیت حافظه شده و برنامه به هم می ریزه. یک کد که برنامه نویس سالها قبل پیش بینی نکرده بودش و الان باعث ۴۸ ساعت اختلال و کلی ترابل شوتینگ شده تا بشه این گزاره ها رو کنار هم گذاشت.

موقع برنامه نویسی به آینده فکر کنین و از اون مهمتر موقع ترابل شوتینگ، بیخودی به اطراف تیر نزنین. موقع عیب یابی باید مشکل رو تشخیص بدین و دقیق تعریف کنین. اینطوری مشکل خود به خود حل می شه. در واقع مشکل این بود که «حالا که بازی ها از ۲ به توان ۳۱ گذشته، روی آیپدهایی که ۳۲ بیت دارن دیگه نمی تونیم بازی جدید بسازیم». برم ببینم فردا با این ذهنیت می تونم مشکل امروز اون ۴ تا سرور رو حل کنم یا نه.