عرض ادب و احترام. با دوره ی آموزشی متدولوژی برنامه نویسی (Programming Methodologies) از وب سایت آموزشی پی وی لرن در خدمتتون خواهیم بود. Debugging یا اشکال زدایی در متدولوژی برنامه نویسی را با بیان انواع خطاها مورد بررسی قرار خواهیم داد.
شناسایی و حذف خطاها از یک برنامه یا نرم افزار اشکال زدایی یا Debugging نامیده می شود. اشکال زدایی در حالت ایده آل بخشی از فرآیند تست است اما در واقعیت در هر مرحله از برنامه نویسی انجام می شود. رمزگذارها قبل از حرکت باید کوچک ترین ماژول های خود را اشکال زدایی کنند. این تعداد خطاهایی را که در مرحله آزمایش به وجود آمده است کاهش می دهد و زمان و تلاش تست را به میزان قابل توجهی کاهش می دهد. حال بگذارید انواع خطاهایی را که می توانند در یک برنامه برطرف کنند ، بررسی کنیم.
خطاهای سینتکس خطاهای دستوری در یک برنامه هستند. هر زبان مجموعه ای از قوانین خاص خود را دارد ، مانند ایجاد شناسه ها ، نوشتن عبارات و غیره برای نوشتن برنامه ها. وقتی این قوانین نقض شوند ، خطاها، خطاهای سینتکس نامیده می شوند. بسیاری از محیط های توسعه یکپارچه پیشرفته می توانند خطاهای سینتکس را هنگام تایپ برنامه شناسایی کنند. موارد دیگر ، هنگام تهیه برنامه ، نشان داده خواهد شد. بگذارید مثالی بزنیم.
در این برنامه متغیر prod اعلام نشده است که توسط کامپایلر پرتاب می شود.
خطاهای معنایی، خطاهای منطقی نیز نامیده می شوند. این بیانیه هیچ خطای سینتکس ندارد ، بنابراین کاملاً کامپایل و اجرا خواهد شد. با این حال ، خروجی مورد نظر را نخواهد داد زیرا منطق صحیح نیست. بگذارید مثالی بزنیم.
به خط ۱۳ نگاه کنید. در این جا برنامه نویس می خواهد بررسی کند که آیا مقسوم علیه ۰ است ، از تقسیم ۰ جلوگیری می کند. اما به جای استفاده از عملگر مقایسه == ، از عملگر انتساب = استفاده شده است. اکنون هر بار که “if expression” به درستی ارزیابی شود، برنامه “You cannot divide by 0” را نتیجه می دهد. و قطعاً این چیزی نبود که در نظر گرفته شده بود!!
خطاهای منطقی توسط هیچ برنامه ای قابل شناسایی نیستند. آن ها هنگام دستیابی به نتیجه مطلوب ، توسط خود برنامه نویسان باید شناسایی شوند.
خطاهای زمان اجرا خطاهایی هستند که هنگام اجرای برنامه رخ می دهند. این بدان معنی است که این برنامه هیچ خطای سینتکسی ندارد. برخی از رایج ترین خطاهای زمان اجرای برنامه که شما ممکن است با آن روبرو شوید، به صورت زیر است
به هر روشی که با استفاده از آن، کد برای بهبود کیفیت و کارآیی اصلاح شود ، بهینه سازی کد گفته می شود. کیفیت کد طول عمر کد را تعیین می کند. اگر کد برای مدت طولانی استفاده و حفظ شود ، از یک محصول به محصول منتقل شود ، کیفیت آن بسیار بالا تلقی می شود و عمر آن طولانی تر است. در مقابل ، اگر یک قطعه کد فقط برای مدت زمان کوتاه قابل استفاده و نگه داری باشد ، از نظر کیفیت پایین و عمر کوتاهی برای آن به نظر می رسد.
قابلیت اطمینان و سرعت یک کد ، راندمان کد را تعیین می کند. کارآیی کد عامل مهمی در اطمینان از عملکرد بالای یک نرم افزار است.
دو روش برای بهینه سازی کد وجود دارد.
(Intuition based optimization (IBO – در این جا برنامه نویس سعی می کند برنامه را بر اساس مهارت و تجربه خود بهینه کند. این روش ممکن است برای برنامه های کوچک کار کند اما با افزایش پیچیدگی برنامه ، شکست می خورد.
(Evidence based optimization (EBO – در این جا از ابزارهای خودکار برای یافتن تنگناهای عملکرد استفاده شده و سپس بخش های مربوطه بر این اساس بهینه می شوند. هر زبان برنامه نویسی مجموعه ای از ابزارهای بهینه سازی کد را دارد. به عنوان مثال ، PMD ، FindBug و Clover برای بهینه سازی کد جاوا استفاده می شوند.
کد برای زمان اجرا و مصرف حافظه بهینه شده است زیرا زمان کمیاب است و حافظه گران است. باید بین این دو تعادل برقرار شود. اگر بهینه سازی زمان باعث افزایش بار حافظه یا بهینه سازی حافظه ، کد را کندتر کند ، هدف از بهینه سازی از بین می رود.
بهینه سازی کد برای زمان اجرا برای ارائه خدمات سریع به کاربران ضروری است. در این جا چند نکته برای بهینه سازی زمان اجرا آورده شده است.
همان طور که می دانید داده ها و دستورالعمل ها از حافظه را استفاده می کنند. وقتی data می گوییم ، به داده های موقت نیز اشاره می شود که نتیجه عبارات است. ما همچنین باید پیگیری کنیم که چه تعداد دستورالعمل در حال تهیه ی برنامه یا ماژول مورد نظر ما برای بهینه سازی هستند. در این جا چند نکته برای بهینه سازی حافظه آورده شده است.
Debugging یا اشکال زدایی در متدولوژی برنامه نویسی را در این بخش از آموزش مورد بررسی قرار دادیم. در جلسه ی آینده به بررسی مستندسازی برنامه یا Program Documentation خواهیم پرداخت. با وب سایت پی وی لرن همراه باشید.