search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

سرچ کردن ، ارور، دیباگ – سرعت گیرهای زندگی یک برنامه نویس

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

حس و حال روزی که گرم کد نویسی هستی را تصور کن!

کاغذ ها و کتاب ها یک طرف، فنجان چای از دهن افتاده ات طرف دیگر!

اما تو غرق در دنیای خودت مثل شصت تیر کد میزنی و جلو می روی .

بالاخره  کد را می نویسی و برنامه ات را اجرا می کنی.

چه بخواهی چه نخواهی می بینی که بــه بــه ! ارور داری .

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

چه شاخ برنامه نویس ها باشی چه تازه کار، ارور ها دست از سرت بر نمی دارند.

 

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

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

می دانی که برای یک برنامه نویس وقت طلاست. با این حال، گاهی چند ساعت زمان صرف می کنی تا جواب سوالت را پیدا کنی.

جواب را با هر بدبختی ای که شده پیدا می کنی.

گاهی مجبور می شوی دنبال راه جدید بگردی.

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

شاید سورپرایز شوی .

 

 

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

می بینی برای جوابت که ” نصف خط کد”بیشتر نیست،دو سه ساعت، و حتی یکی دو روز از عمر گرانبهایت را هدر داده ای.

از طرف دیگر، استرس تلفن های مشتری که منتظر است پروژه اش آماده شود، امانت را بریده است.

اما چاره ای نداری، باید ارور ها ، باگ ها یا هر اشکال دیگری را برطرف کنی.  پروژه را صحیح و سالم سر وقت تحویل دهی.

بیا و همین الان جدی به این فکر کن که “چرا این ارور های بیخود، اینقدر وقت گیرند؟ “

راه میانبر برای جواب دادن به سوال تو، همین مقاله است.

دوست خوبم تو روش درست سرچ کردن  و دیباگ کردن را بدانی، بار خودت را بسته ای !

  • روش درست سرچ کردن برای یک برنامه نویس چیست ؟

  •  دیباگ چیست و اصلا چطوری میشود دیباگ کرد؟

کاملا نرمال است که این سوال ها را بپرسی.

قبل از آنکه برویم سراغ اصل مطلب باید بدانی که :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

“یک برنامه نویس خفن برنامه نویسی است که، توانایی سرچ و دیباگ کردن داشته باشد “

روش های سرچ کردن مخصوص برنامه نویس ها

خیلی جاها نوشته اند برای سرچ بهتر است از ” ” یا  And و از این جور چیزها استفاده کنی. اما چیزی که ما می خواهیم، این نیست!!!

حقیقت این است، چهارچوب و فرمولی برای سرچ کردن، برای یک برنامه نویس وجود ندارد. اما چند موقعیت هست که ممکن است تو برنامه نویس در آن ها قرار بگیری :

۱-   موقع “اجرای” یک کد به ارور بخوری

اینجور مواقع برنامه هایی مثل ویژوال استدیو یا اندروید استدیو به زبان بی زبانی ارور را به تو نشان می دهند. یعنی به تو می گویند که اشکال از کجاست؟

لطفا “همان ارور” یا “قسمت کلیدی آن ارور ” را  در گوگل سرچ کن . این رایج ترین و مشخص ترین راه پیدا کردن اشکال هست.

مثل ارور زیر :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

این عبارت را در گوگل سرچ کن.

 

‘.System.OverflowException: ‘Value was either too large or too small for an unsigned byte

به شکل زیر:

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

البته اینجور مواقع باید حوصله به خرج بدهی و متن هایی که انگلیسی هستند را هم بخوانی.

 

۲- احتمال دارد برای یک فرآیند (مثلا جمع دو عدد) بخواهی متد یا تابع بنویسی

اگر توانستی با مکانیزم طبیعی ذهن خودت راه حل را پیدا کنی که چه بهتر، در غیر این صورت باید سرچ کنی !

چه چیزی را سرچ کنم ؟

شاید یک فرضیه ، یک عبارت یا هر چیزی در ذهنت باشد.

لطفا به آن شک نکن. آن را در گوگل سرچ کن!

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

 

وقتی سرچ کردی دو حالت دارد:

  • با عبارتی که سرچ کردی به نتیجه رسیده ای!
  • با عبارتی که سرچ کردی به نتیجه نرسیده ای!

اگر به نتیجه نرسیده ای ، باز هم باکت نباشد.

شش دانگ حواست را جمع کن . از لا به لای چیزهایی که سرچ کرده ای به دنبال سر نخ باش.
برای اینکه بهتر متوجه بشی چطوری سرنخ بدست بیاوری، ویدئو زیر را ببین تا با یک قانون هم آشنا بشی:

 

 

 

مطمئنا، چیزی دستت را خواهد گرفت.

گاهی اوقات از نتیجه های این مدل سرچ کردن متوجه می شوی آنجه در ذهنت بوده، درست نبوده. اما با سرچ چیزهای غلط غلوط، به یک راه حل جدید و جواب درست رسیده ای .

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

فقط دست از سر سرچ کردن بر ندار!

۳- پیدا کردن کلمات کلیدی به روش بازجویی از خودت

گاهی باید  مساله (فرآیندی که با آن روبرو هستی) را در” ۳ کلمه کلیدی” (در بیشتر مواقع به زبان انگلیسی)  تعریف کنی.

این ۳ کلمه کلیدی که در جیبت نیستند، باید خودت را بازجویی کنی .

در روش بازجویی از خودت، برای پیدا کردن “سه کلمه کلیدی”  ۴ مرحله پیش رو داری :

  1. تا می توانی از خودت سوال بپرس

  2. به سوال هایت جواب بده

  3. کلمات کلیدی را  از دل جواب هایت بیرون بکش

  4. یک عبارت حداکثر سه کلمه ای تعریف کن

آن عبارت را در گوگل سرچ کن. مثل شکل زیر:

 

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

پس برای فرآیند احراز هویت کاربر اگر با #C می خواهی کد نویسی کنی، عبارت زیر را سرچ کن :

“#User authentication C”

که نتیجه به شکل زیر خواهد بود :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

در این مواقع خود گوگل هم عبارت هایی نزدیک به عبارت تو،به تو پیشنهاد میدهد. پیشنهاد می کنم آن ها را دست کم نگیری.

نکته مهمی که نباید فراموش کنی :

“کیفیت” محتوایی که پیدا کردی را حتما بررسی کن.معمولا رفیق های بی کلکی مثل وب سایت StackOverflow  جزء نتیجه های اول و معتبر هستند . از آن ها استفاده کن.

۳-  ممکن است در یک فرآیند جدید به مرحله ای برسی که “به نظر خودت” اصلا قابل پیاده سازی نیست.

احساس می کنی که هیچ راهی برای حل مساله نداری.

مگه میشه ؟؟

اگر نا امید شدی و حتی زحمت سرچ را هم به خودت ندادی ، بهتر است با شخصی مشورت کنی تا ذهنت کمی باز شود ا

و یک لگد بزن زیر مساله و بی خیال شو، بالاخره بعد از کمی استراحت و تفریح گره باز خواهد شد .

مثل شکل پایین :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

حتی اگر فکر می کنی هیچ راه حلی وجود ندارد، سه کلمه کلیدی و اساسی پیدا کن و سرچ کن. حتی یک سرچ ساده هم کافی است !

۴-  وب سایتی پیدا می کنی که راه حلی دارد اما جواب آن ها واضح نیست.

یا سوال دیگه ای برایت پیش آمده است. حتما به آن ها ایمیل بزن یا برای آن ها کامنت بگذار .

حتی اگر جواب ندهند تو تلاشت را کرده ای و این کار تیری است در تاریکی.

مثل سوالی که من از Tim Corey پرسیدم و جواب هایی که گرفتم !

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

یا سوالی که در Stackoverflow پرسیدم و جواب گرفتم.

پیشنهاد : اگر به مثال نیاز داری از codeproject و اگر به قطعه کد نیاز داری از Stackoverflow استفاده کنید.

۵- قطعه کدی نوشته ای که جواب نمی دهد یا ایرادی دارد.

اگر در این موقعیت قرار گرفتی همان قطعه کد را جست و جو کن ! مانند شکل زیر :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

مدیریت بحران با استفاده از دیباگ

دیباگ حتی از برنامه نویسی هم مهم تر هست و به مهارت بیشتری نیاز دارد !

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

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

· دیباگ چیست ؟

دیباگ یعنی برنامه ای که نوشته ای را اجرا کن و کدی که اشکال دارد را قدم به قدم بررسی کن.

جلو برو تا جایی که “مشکل” را پیدا کنی و آن را حل کنی. به این کار دیباگ می گویند!

 

· چه موقع دیباگ کنم؟

۱-   هر وقت فرآیندی که پیاده سازی کردی جواب اشتباهی به تو  میداد ، دیباگ کن.

۲-   هروقت برنامه به درستی اجرا نمیشد ولی ارور خاصی هم نداشت، دیباگ کن.

۳-   هر وقت می خواستی از مکانیزم طبیعی ذهنت که پیاده سازی شده و به کد تبدیل شده مطمئن بشی، دیباگ کن .

البته این سه مورد “آنچه من تجربه کردم” هست و آیه از آسمان نازل شده نیست .

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

· چطوری دیباگ کنم؟

  • می توانی با دقت بسیار بالا مرحله به مرحله با کد های خود جلو بروی تا خطا را پیدا کنی.
  • یا می توانی از Break Point موجود در نرم افزارهایی مثل visual studio استفاده کنی!

مثال :

فرض کن اطلاعات یک شخص را ذخیره می کنی.

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

میخواهی اطلاعات را در یک لیست در جای دیگری از برنامه ات Load کنی, اما این اتفاق نمی افتند!

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

خب خب خب ! این یعنی یک جای کارت می لنگد .

باز هم از روش “از خودت باز جویی کن” استفاده کن :

  • چرا داده های این لیست بعد از ذخیره اسم یک نفر بروز نمی شود ؟
  • فرآیند ذخیره اطلاعات یک شخص کجا انجام می شود ؟
    • جواب :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

  • اطلاعات این لیست کِی و کجا فراخوانی می شوند؟

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

اگر دقت کنی، همینجا باگ را گرفته ای !

داده هایی که در رویداد Load یک فرم ، در یک لیست ریخته می شوند ، فقط یک بار  در زمان اجرای برنامه Load می شوند!

به همین دلیل برای خواندن داده های جدید حتما باید یک بار برنامه باز و بسته شود.

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

تبریک! تو با بازجویی از خودت یک دیباگ تمام عیار انجام دادی!

خبر خوب این است که بعد از مدتی، دیباگ در همان لحظه کد نویسی به صورت اتوماتیک توی ذهنت انجام می شود.

در همان لحظه که کد نویسی می کنی، احتمال میدهی که در این قسمت به ارور خواهی خورد.

در نتیجه اگر خدایی نکرده ارور دریافت کنی ،خیلی سریع به سراغ آن خواهی رفت .آن را اشکال زدایی خواهی کرد، چون از محل وقوع حادثه خبر داری.

چند تجربه از مو سفید های برنامه نویسی

  • مواظب باش دچار “کوری حاصل از تمرکز نشوی”

هر وقت به اروری برخوردی و خواستی سرچ کنی مواظب باش که توی حلقه سرچ نیفتی.

مثلا ممکن است یک لحظه به خودت بیای و ببینی که ۵۰ تا Tab توی مرورگرت باز کرده ای. ساعت ها بین آن ها دور زده ای.

اگر این اتفاق افتاد یک نفس عمیق بکش . سعی کن در مورد اینکه کدام صفحه ها جواب تو نیستند ، تصمیم گیری کنی و آن صفحات اضافه را ببندی!

  •  راه حلی که حس می کنی به جواب تو نزدیک هست را نصف و نیمه رها نکن

لطفا  یک جواب یا راه حل رو “کامل بخون” و “تست کن” !

  • شاید برای تو هم اتفاق بیفتد

ما برنامه نویس ها، اکثرا مثل هم هستیم و هر اتفاقی برای من بیفتد، ممکن است برای افراد قبل از من اتفاق افتاده باشد.

پس از تو دعوت می کنم که مکالمه من و یکی از دوستان برنامه نویسم را هم بخوانی !

پارت اول :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

پارت دوم :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

 

تا یادم نرفته است بگویم که :

 

search کردن سرچ کردن debug کردن debug دیباگ کردن دیباگ ارور error

مهارت های ” سرچ ” و ” دیباگ ” بدست آوردنی هستند و موقع تولد آن ها را با خود به دنیا نمی آوری

دقیقا مثل بقیه استعداد هایی که در یک انسان وجود دارند .تو هم بعنوان برنامه نویس، استعداد سرچ کردن و دیباگ را شکوفا می کنی.

پس اعتماد به نفس خودت را حفظ کن. اگر تو خوب سرچ نمی کنی، به این معنا نیست که تو برنامه نویسی بلد نیستی یا برنامه نویس خوبی نیستی.

فقط باید قلق سرچ کردن و دیباگ کردن صحیح را بدانی.

پیشنهاد من برای شما:

  •  اگر تازه شروع به برنامه نویسی کرده ای
  • اگر به توانایی خودت توی برنامه نویسی مشکوک شده ای

چند بار این مقاله را بخوان .

تو هم خاطرات سرچ و دیباگ خودت را تعریف کن  .

 

22 پاسخ
      • علی
        علی گفته:

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

        پاسخ
  1. Bita
    Bita گفته:

    سلام بسیار متشکرم از مقاله خوبتون خوندنش باعث حل برخی از مشکل و سوالاتی شد که در ذهنم بود.فقط یه سوال در مورد مسلط بودن به زبان انگلیسی داشتم اینکه باید در برنامه نویسی باید به زبان انگلیسی مسلط بود؟

    پاسخ
    • ضحی شبر
      ضحی شبر گفته:

      سلام بیتا جان
      خیلی خوشحالم که این مقاله توانست به کمکت بیاید.
      در مورد سوالی که در خصوص زبان انگلیسی داری باید بگویم که از نظر من برای برنامه نویسی همین اندازه که بتوانی کمی با زبان انگلیسی ارتباط برقرار کنی و با کامپیوتر کار خودت را راه بیندازی کافی ست. بقیه اش را در حین برنامه نویسی یاد خواهی گرفت و یک روز به خودت می آیی و میبینی بدون اینکه هرگونه کلاس زبانی رفته باشی یک مقاله زبان اصلی را از اول تا آخر خوانده ای و آنچه خواسته بودی را ازش برداشت کرده ای.
      همه چیز به همین آسانی است

      پاسخ
  2. زکریا جاویدنژاد
    زکریا جاویدنژاد گفته:

    سلام وقتتون بخیر خانم شبر من می‌خوام برنامه نویسی یادبگیرم مشخصات خودمم فرستادم واستون اما بامن تماسی گرفته نشده شما آموزش برنامه نویسی هم میدین کلافه شدم از آموزش هایی که توی بیشتر سایت ها هست یا اونقدر گرونه که نمیشه به قیمتها حتی نگاه کنی یا همش صحبت های تخصصی و گیج کننده یعنی منکه عاشق برنامه نویسی هستم هیچوقت به خواسته خودم نمی‌رسم 😖😖😖 جوری شده که فقط توخواب میبینم برنامه نویس شدم فکرکنم دنیا طوری شده که تا به اندازه کافی پول نداشته باشی آرزوهاتو باید چال کنی ممنون از توجهتون و آموزش هاتون

    پاسخ
    • ضحی شبر
      ضحی شبر گفته:

      سلام آقای جاویدنژاد
      به دلیل حجم بالای درخواست های مشاوره، امکان دارد درخواست شما در صف باشد، مطمئن باشید به همه درخواست ها رسیدگی می کنیم

      پاسخ
      • نازمحمد گری
        نازمحمد گری گفته:

        و همچنان آموزش های شما را دنبال می کنم.درسته است که در حال حاضر نمی توانم در حوزه برنامه نویسی ، روشها را پیاده کنم ولی در سایر حوزها مثل همین فعالیت های روزانه که این آموزشها را پیاده سازی می کنم و به نتیجه دلخواه خودم می رسم یه حسی به آدم میده که قابل توصیف نیست /

        پاسخ
  3. دانیال
    دانیال گفته:

    سلام. من از همین الان با سن کم شروع کردم به یادگیری زبان برنامه نویسی c#
    تا الان فکر میکردم که خیلی پر کاربرد نیست و به فکر تغییرش افتادم ولی الان که دیدم شما هم با c# مثال زدید یکم دلگرم شدم
    ممنونم ازتون.

    پاسخ
  4. ترابی
    ترابی گفته:

    سلام مطلب تون خیلی مفید بود
    ولی اگه بخوام یه کد را پیدا کنم نه اینکه مشکل کد را بخواهم پیدا کنم یا دیباگ
    اگه بخواهم کد یک قسمت را پیدا کنم باید چی سرچ کنم؟

    پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *