کد مرده در برنامه نویسی، نباید در هیچ جای برنامه وجود داشته باشد. هر کدی که حذف آن، تأثیری بر خروجی برنامه نگذارد، کد مرده محسوب می شود. در این راستا یک الزام در استاندارد MISRA C++ وجود دارد که متن آن بصورت زیر است:
There shall be no dead code.
این یک قانون الزامی در استاندارد MISRA C++ شمارۀ 0-1-9 است. برای مرور کنندۀ کد مشخص نیست که وجود این کد عمدی است یا به دلیل خطای برنامه نویس رخ داده است. از نمونههای کد مرده، کدهای درون یک شرط if است که شرط آن هیچگاه True نمیشود. در این صورت کدهای درون if هیچگاه اجرا نمیشوند. علاوه بر این، کدهای مرده باعث پیچیدگی بی دلیل در برنامه شده و توسعه دهندگان دیگر و حتی خود توسعه دهندۀ آن را گمراه کرده و به اشتباه می اندازد. در برخی از موارد، کدهای مرده توسط ابزارهای چک استاتیک در IDEها، تشخیص داده نمی شود و درنتیجه Warning هم گرفته نمی شود. در برخی از ابزارهای IDE که مجهز به دیباگر هستند، در زمان دیباگ نرم افزار، کدهای مرده با رنگ دیگری به کاربر نمایش داده شده و کاربر می تواند آنها را تشخیص داده و اقدام به حذف آنها کند. نمونه ای از مثال کد مرده را در نمونه کد زیر ارائه شده است:
int16_t has_dead_code (int16_t para)
{
int16_t local = 99;
para = para + local;
local = para; //dead code - Non-compliant
if (0 == local) //dead code - Non-compliant
{
local++; //dead code - Non-compliant
}
return para;
}
استاندارد MISRA C++ شامل قوانینی به منظور استفاده از زبان C++ در سیستم های حیاتی است. هم استادارد MISRA C و هم استاندارد MISRA C++ توسط یوبرد بررسی و تحلیل شده و در قالب آموزش و انجام پروژه در وبسایت یوبرد ارائه شده است.
لینک های مفید:
آموزش استاندارد MISRA C++ یوبرد
0 دیدگاه