کد بادشکم

در برنامه‌نویسی رایانه‌ای، کد بادشکم (به انگلیسی: code bloat) نوعی ایجاد کد برنامه (کد منبع یا کد ماشین) است، که منابع را هدر می‌دهد، کد را دراز می‌کند یا کد را آهسته می‌سازد. کدهای بادشکمی می‌تواند به دلیل بی کفایتی زبان برنامه‌نویسی که کد به آن زبان نوشته شده‌است، ایجاد شود. همچنین ممکن است دلیل آن بی کفایتی کامپایلری که آن را کامپایل می‌کند، یا بی کفایتی برنامه‌نویسی باشد که آن را نوشته‌است؛ بنابراین، درحالیکه کدهای بادشکمی معمولاً به سایز کد منبع برمی گردند (یعنی توسط برنامه‌نویس ایجاد شده‌اند)، می‌تواند در عوض به سایز کد تولید شده یا حتی سایز فایل دودویی اشاره کند.[1]

مثال‌ها

در الگوریتم جاوااسکریپت که در ادامه می‌آید، تعداد زیادی متغیر اضافی، منطق غیرلازم، و اتصال رشتهٔ ناکارآمد وجود دارد.[1]

// Complex
function TK2getImageHTML(size, zoom, sensor, markers) {
    var strFinalImage = "";
    var strHTMLStart = '<img src="';
    var strHTMLEnd = '" alt="The map"/>';
    var strURL = "http://maps.google.com/maps/api/staticmap?center=%22;
    var strSize = '&size='+ size;
    var strZoom = '&zoom='+ zoom;
    var strSensor = '&sensor='+ sensor;

    strURL += markers[0].latitude;
    strURL += ",";
    strURL += markers[0].longitude;
    strURL += strSize;
    strURL += strZoom;
    strURL += strSensor;

    for (var i = 0; i <markers.length; i++) {
        strURL += markers[i].addMarker();
    }

    strFinalImage = strHTMLStart + strURL + strHTMLEnd;
    return strFinalImage;
};

منطق مشابه می‌تواند به صورت موثرتر به صورت زیر بیان گردد:[1]

// Simplified
const TK2getImageHTML = (size, zoom, sensor, markers) => {
    const [{ latitude, longitude }] = markers;
    let url = `http://maps.google.com/maps/api/staticmap?center=$%7B latitude },${ longitude }&size=${ size }&zoom=${ zoom }&sensor=${ sensor }`;

    markers.forEach(marker => url += marker.addMarker());

    return `<img src="${ url }" alt="The map"/>`;
};

منابع

  1. "Code bloat". Wikipedia. 2020-01-30.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.