
هنر debugging در برنامه نویسی
برنامهنویسی، تنها نوشتن کد نیست. بخش بزرگی از وقت یک توسعهدهنده، صرف پیدا کردن و رفع اشکالاتی میشود که خودش یا دیگران ایجاد کردهاند. این فرآیند که به آن «اشکالزدایی» یا Debugging میگوییم، بیش از هر چیز شبیه به کار یک کارآگاه است؛ شما سرنخها را جمع میکنید، شاهدین را بازجویی میکنید و در نهایت به یک مجرم خفته در میان هزاران خط کد پی میبرید. جالب اینجاست که در دانشگاهها و دورههای آموزشی، به ندرت هنر اشکالزدایی را به شما یاد میدهند؛ همه چیز به تجربه و تکرار سپرده میشود. در این مطلب، سه اصل طلایی را با شما به اشتراک میگذارم که مسیر کارآگاهی شما را هموارتر میکنند.
۱. پیش از تغییر، بازتولید کنید
بزرگترین اشتباهی که یک برنامهنویس هنگام مواجهه با باگ مرتکب میشود، این است که بیدرنگ دست به تغییر کد میزند. او چند خط را جابهجا میکند، یک شرط را عوض میکند و بعد میبیند که مشکل برطرف نشده یا بدتر، مشکل جدیدی متولد شده است. یک کارآگاه حرفهای هرگز قبل از درک کامل صحنهٔ جرم، چیزی را جابهجا نمیکند. شما باید ابتدا باگ را بهطور کامل بازتولید کنید. یعنی دقیقاً بدانید با چه ورودیهایی، در چه شرایطی، و با چه پیامی خطا رخ میدهد. یک گزارش خطای دقیق و گامبهگام، نیمی از راه حل است. پس پیش از هر اقدامی، باگ را چندین بار تکرار کنید تا الگوی آن را بیابید.
۲. از روش «نصفکردن» استفاده کنید
فرض کنید یک کتاب ۵۰۰ صفحهای دارید و میدانید که یک برگه از آن پاره شده، اما نمیدانید کدام صفحه. آیا صفحهبهصفحه جلو میروید؟ خیر. هوشمندانهترین کار این است که کتاب را از وسط باز کنید و ببینید برگهٔ پارهشده در نیمهٔ اول است یا دوم. سپس همان کار را برای نیمهٔ مورد نظر تکرار کنید تا به صفحهٔ دقیق برسید. این روش در دنیای کدنویسی به «اشکالزدایی دودویی» معروف است. اگر برنامهتان از چندین ماژول تشکیل شده، نقاط ورود و خروج هر ماژول را لاگ بگیرید تا ببینید مشکل در کدام بخش رخ میدهد. سپس در همان بخش، توابع را نصف کنید و همینطور ادامه دهید. با این روش، حتی در بزرگترین پروژهها هم در کمترین زمان به نقطهٔ آسیبدیده میرسید.
۳. ذهنتان را از کد خالی کنید
این اصل شاید عجیب به نظر برسد اما یکی از مؤثرترین تکنیکهای اشکالزدایی است. وقتی ساعتها به یک خطا خیره شدهاید و راهحلی نمییابید، بهترین کار این است که از جای خود بلند شوید، یک قدم بزنید، چای بنوشید یا حتی مشکل را برای یک همکار یا حتی یک اسباببازی روی میز توضیح دهید. این روش که به آن «اشکالزدایی با جوجهاردکی» (Rubber Duck Debugging) میگویند، مغز شما را مجبور میکند که مسئله را با زبانی ساده بازگو کند و اغلب در همین حین، گره کور ذهنتان باز میشود. دور شدن از کد، به شما دید تازهای میدهد و اشتباهات بدیهی را آشکار میسازد.
اشکالزدایی یک مهارت است، نه یک زحمت
بسیاری از برنامهنویسان تازهکار، اشکالزدایی را کاری خستهکننده و وقتگیر میدانند. اما حقیقت این است که هر باگ، یک معلم است. هر بار که یک خطا را پیدا و رفع میکنید، درک عمیقتری از زبان برنامهنویسی، کتابخانهها و معماری سیستم پیدا میکنید. به مرور زمان، اشکالزدایی برایتان به یک بازی فکری لذتبخش تبدیل میشود و سرعت شما در یافتن و رفع مشکلات به طرز چشمگیری افزایش مییابد. مهمتر اینکه، صبوری و تفکر منطقی که در این مسیر پرورش مییابید، در تمام جنبههای زندگی حرفهایتان به کارتان میآید. پس دفعهٔ بعد که با یک باگ مرموز مواجه شدید، به خودتان بگویید: «یک ماجراجویی تازه شروع شده است» و با خونسردی، کارآگاهیِ آن را آغاز کنید.

