Inchaço de código - Code bloat

Na programação de computadores , o inchaço de código é a produção de código de programa ( código- fonte ou código de máquina ) que é percebido como desnecessariamente longo, lento ou, de outra forma, um desperdício de recursos. O inchaço do código pode ser causado por inadequações na linguagem de programação em que o código foi escrito, o compilador usado para compilá-lo ou o programador que o escreveu. Portanto, embora o inchaço do código geralmente se refira ao tamanho do código-fonte (conforme produzido pelo programador), ele pode ser usado para se referir ao tamanho do código gerado ou mesmo ao tamanho do arquivo binário .

Exemplos

O seguinte algoritmo JavaScript tem um grande número de variáveis redundantes , lógica desnecessária e concatenação de string ineficiente.

// 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=";
    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;
};

A mesma lógica pode ser declarada de forma mais eficiente da seguinte maneira:

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

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

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

Densidade de código de diferentes idiomas

A diferença na densidade do código entre as várias linguagens de computador é tão grande que geralmente menos memória é necessária para manter um programa escrito em uma linguagem "compacta" (como uma linguagem de programação específica de domínio , Microsoft P-Code ou código encadeado ), mais um intérprete para aquela linguagem compacta (escrita em código nativo), do que manter aquele programa escrito diretamente em código nativo .

Reduzindo o inchaço

Algumas técnicas para reduzir o inchaço do código incluem:

  • Refatorar código comumente usado em uma sub - rotina e chamar essa sub-rotina de vários locais, em vez de copiar e colar o código em cada um desses locais.
  • Reutilizar sub-rotinas que já foram escritas (talvez com parâmetros adicionais), em vez de reescrevê-las do zero como uma nova rotina.

Veja também

Referências