Farzad Afi Logo

FarzadAfi

آموزش تخصصی برنامه نویسی

Debugging with IntelliJ | دیباگ کردن با اینتلیج

📖توضیحات درس

🎥 این ویدیو قسمت دوازدهم از بوت‌کمپ رایگان جاوا است. 🐞 آموزش دیباگ کردن (اشکال‌زدایی) با IntelliJ IDEA در این جلسه یاد می‌گیریم چطور با استفاده از محیط توسعه‌ی IntelliJ IDEA کدهای خود را دیباگ (اشکال‌زدایی) کنیم. این مهارت به شما کمک می‌کند تا راحت‌تر مشکلات برنامه را پیدا کرده و روند اجرای کد را بهتر درک کنید — یکی از مهم‌ترین مهارت‌هایی که هر برنامه‌نویس باید بلد باشد. 📌 گروه پرسش و پاسخ تلگرام: programmingByFarzadAfi@ گروه پرسش و پاسخ بله: @programming_by_farzadafi هر سوالی داشتید، می‌توانید در این گروه بپرسید تا من یا مربی‌های حاضر راهنمایی‌تان کنیم. 🎯 بوت‌کمپ رایگان جاوا – آموزش تمرین‌محور برای یادگیری عمیق و ورود به بازار کار.
00:25:24🎯رایگان

📄جزوه

مفاهیم کلیدی

Debugging

فرآیند شناسایی، ردیابی و رفع خطاها یا رفتارهای ناخواسته در کد برنامه.

Tracing

دنبال کردن خط به خط اجرای کد برای درک دقیق اتفاقاتی که در حافظه و جریان برنامه می‌افتد.

Breakpoint

نقطه‌ توقفی که توسط برنامه‌نویس در حین کدنویسی تعیین می‌شود تا اجرای برنامه در آن خط خاص متوقف شده و وضعیت متغیرها بررسی شود.

Debug Mode

حالتی از اجرای برنامه که در آن ابزارهای کنترلی دیباگر فعال هستند و اجازه می‌دهند برنامه را مرحله‌به‌مرحله کنترل کنیم.

Step Over (F8)

دستوری در دیباگر که باعث می‌شود برنامه فقط یک خط جلو برود. اگر خط فعلی یک method باشد، دیباگر داخل آن نمی‌رود و فقط نتیجه را برمی‌گرداند.

Resume Program (F9)

دستوری که اجرای برنامه را از محل توقف فعلی ادامه می‌دهد تا زمانی که به breakpoint بعدی برسد یا برنامه تمام شود.

Evaluate Expression

ابزاری (با آیکون ماشین حساب) که اجازه می‌دهد در حین توقف برنامه، قطعه کدهای دلخواه یا عبارات منطقی را بر روی داده‌های فعلی تست و محاسبه کنید.

Variables View

بخشی در محیط IDE که تمام متغیرهای موجود در Scope فعلی و مقادیر لحظه‌ای آن‌ها را نمایش می‌دهد.

نکات مهم مصاحبه‌ای

چرا استفاده از Debugger بهتر از چاپ کردن مقادیر (سوت زدن یا sout) است؟

دیباگر اجازه می‌دهد بدون تغییر در کد اصلی و بدون نیاز به اجرای مجدد برنامه برای هر تغییر، تمام متغیرها را به صورت لایو ببینید، مقادیر را در لحظه تغییر دهید و جریان اجرای کد را در مسیرهای پیچیده (مانند حلقه‌های طولانی) کنترل کنید.

تفاوت کلیدی بین F8 و F9 در محیط IntelliJ چیست؟

کلید F8 (Step Over) برای حرکت خط به خط و دقیق در کد استفاده می‌شود، در حالی که F9 (Resume) برای پرش از یک نقطه توقف به نقطه توقف بعدی کاربرد دارد و از اجرای خط به خط میان آن‌ها صرف‌نظر می‌کند.

آیا می‌توان در حین اجرای برنامه (Runtime) مقدار یک متغیر را تغییر داد؟

بله، با استفاده از قابلیت Set Value در بخش متغیرهای دیباگر، می‌توان مقدار یک متغیر را در حالتی که برنامه متوقف شده است تغییر داد تا رفتار برنامه با داده‌های متفاوت را بدون تغییر در کد تست کرد.

 مثال یا سناریوی کاربردی

در ویدیو سناریوی بررسی صحت یک شماره تلفن (Phone Number Validation) نمایش داده شد:

1.  قرار دادن Breakpoint: ابتدا روی شماره خطوط در متد اصلی کلیک می‌کنیم تا نقاط توقف تعیین شوند.

2.  اجرای در حالت Debug: به جای دکمه Run، از دکمه Debug استفاده می‌کنیم.

3.  بررسی شرط‌ها: برنامه در خطی که طول شماره تلفن را چک می‌کند (length != 11) متوقف می‌شود.

4.  مشاهده مقادیر: در بخش Variables مشاهده می‌کنیم که ورودی کاربر چیست (مثلاً "10").

5.  محاسبه عبارات: با Evaluate Expression تست می‌کنیم که آیا کاراکتر اول صفر است یا خیر.

6.  ردیابی حلقه: در یک حلقه for که تک‌تک کاراکترها را چک می‌کند، با فشار دادن F8 می‌بینیم که چگونه متغیر counter با هر بار یافتن عدد، افزایش می‌یابد.

بیشتر بدانید

نکته IDE

در IntelliJ، برای قرار دادن breakpoint کافی است در نوار کناری سمت چپ شماره خطوط کلیک کنید. آیکون دایره قرمز نشانه نقطه توقف روی خطوط و آیکون لوزی نشانه توقف روی متدهاست.

نکته فنی

اگر در حلقه هستید که ۱۰۰۰ بار تکرار می‌شود، به جای ۱۰۰۰ بار زدن F8، یک breakpoint بعد از حلقه بگذارید و F9 را بزنید تا مستقیماً به خروجی حلقه برسید.

تغییر مقدار در لحظه

می‌توانید روی یک متغیر در بخش Variables راست‌کلیک کرده و گزینه Set Value را انتخاب کنید تا مقدار آن را عوض کنید (مثلاً نام کاربری ورودی را از "Farzad" به "Admin" تغییر دهید تا سطح دسترسی متفاوتی را تست کنید)