دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۲
  • اسفند

جلسه ۰۹ : بررسی Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

  • دسته‌بندی‌ها :
جلسه ۰۹ : بررسی Debugging یا اشکال زدایی در متدولوژی برنامه نویسی
    • جزئیات
    • نوع محتواآموزشی

      عرض ادب و احترام. با دوره ی آموزشی متدولوژی برنامه نویسی (Programming Methodologies) از وب سایت آموزشی پی وی لرن در خدمتتون خواهیم بود. Debugging یا اشکال زدایی در متدولوژی برنامه نویسی را با بیان انواع خطاها مورد بررسی قرار خواهیم داد.

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

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

      خطاهای سینتکس (Syntax Errors)

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

       

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

      در این برنامه متغیر prod اعلام نشده است که توسط کامپایلر پرتاب می شود.

      خطاهای معنایی (Semantic Errors)

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

       

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

      به خط ۱۳ نگاه کنید. در این جا برنامه نویس می خواهد بررسی کند که آیا مقسوم علیه ۰ است ، از تقسیم ۰ جلوگیری می کند. اما به جای استفاده از عملگر مقایسه == ، از عملگر انتساب = استفاده شده است. اکنون هر بار که “if expression” به درستی ارزیابی شود، برنامه “You cannot divide by 0” را نتیجه می دهد. و قطعاً این چیزی نبود که در نظر گرفته شده بود!!

      خطاهای منطقی توسط هیچ برنامه ای قابل شناسایی نیستند. آن ها هنگام دستیابی به نتیجه مطلوب ، توسط خود برنامه نویسان باید شناسایی شوند.

      خطاهای زمان اجرا (Runtime Errors)

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

      • حلقه بی نهایت
      • تقسیم بر ‘۰’
      • مقدار اشتباه وارد شده توسط کاربر (مثلاً رشته به جای integer)

      بهینه سازی کد

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

      قابلیت اطمینان و سرعت یک کد ، راندمان کد را تعیین می کند. کارآیی کد عامل مهمی در اطمینان از عملکرد بالای یک نرم افزار است.

      دو روش برای بهینه سازی کد وجود دارد.

      (Intuition based optimization (IBO – در این جا برنامه نویس سعی می کند برنامه را بر اساس مهارت و تجربه خود بهینه کند. این روش ممکن است برای برنامه های کوچک کار کند اما با افزایش پیچیدگی برنامه ، شکست می خورد.

      (Evidence based optimization (EBO – در این جا از ابزارهای خودکار برای یافتن تنگناهای عملکرد استفاده شده و سپس بخش های مربوطه بر این اساس بهینه می شوند. هر زبان برنامه نویسی مجموعه ای از ابزارهای بهینه سازی کد را دارد. به عنوان مثال ، PMD ، FindBug و Clover برای بهینه سازی کد جاوا استفاده می شوند.

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

       

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی

      بهینه سازی زمان اجرا (Execution Time Optimization)

      بهینه سازی کد برای زمان اجرا برای ارائه خدمات سریع به کاربران ضروری است. در این جا چند نکته برای بهینه سازی زمان اجرا آورده شده است.

      • از دستوراتی استفاده کنید که بهینه سازی زمان اجرای داخلی را دارند.
      • به جای شرط if از switch استفاده کنید.
      • فراخوانی توابع را با ساختارهای حلقه به حداقل برسانید.
      • ساختار داده های به کار رفته در برنامه را بهینه کنید.

      بهینه سازی حافظه (Memory Optimization)

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

      • از دستوراتی که بهینه سازی حافظه داخلی دارند استفاده کنید.
      • حداقل از متغیرهایی که باید در رجیسترها ذخیره شوند استفاده کنید.
      • از اعلام متغیرهای جهانی در داخل حلقه هایی که بارها اجرا می شود خودداری کنید.
      • از استفاده از توابع فشرده CPU مانند ()sqrt جلوگیری کنید.

      کلام پایانی

      Debugging یا اشکال زدایی در متدولوژی برنامه نویسی را در این بخش از آموزش مورد بررسی قرار دادیم. در جلسه ی آینده به بررسی مستندسازی برنامه یا Program Documentation خواهیم پرداخت. با وب سایت پی وی لرن همراه باشید.

      QR:  جلسه ۰۹ : بررسی Debugging یا اشکال زدایی در متدولوژی برنامه نویسی
      به اشتراک بگذارید