Раздутие кода - Code bloat

В компьютерное программирование, раздувание кода это производство программный код (исходный код или же Машинный код ), который воспринимается как излишне долгий, медленный или иным образом расточительный ресурс. Раздутие кода может быть вызвано несоответствиями в язык программирования в котором написан код, компилятор использовались для его компиляции, или программист писать это. Таким образом, хотя раздувание кода обычно относится к размеру исходного кода (созданному программистом), его можно использовать для ссылки на генерируется размер кода или даже двоичный файл размер.

Примеры

Следующий алгоритм JavaScript имеет большое количество избыточный переменные, ненужная логика и неэффективная конкатенация строк.

// Сложный функция TK2getImageHTML(размер, увеличить, датчик, маркеры) {    вар strFinalImage = "";    вар strHTMLStart = ';    вар strHTMLEnd = '"alt =" Карта "/>';        вар strURL = "http://maps.google.com/maps/api/staticmap?center=";    вар strSize = '& размер ='+ размер;    вар strZoom = '& zoom ='+ увеличить;    вар strSensor = '& сенсор ='+ датчик;           strURL += маркеры[0].широта;    strURL += ",";    strURL += маркеры[0].долгота;    strURL += strSize;    strURL += strZoom;    strURL += strSensor;        за (вар я = 0; я < маркеры.длина; я++) {        strURL += маркеры[я].addMarker();    }        strFinalImage = strHTMLStart + strURL + strHTMLEnd;    возвращаться strFinalImage;};

Эту же логику можно более эффективно сформулировать следующим образом:

// Упрощенный const TK2getImageHTML = (размер, увеличить, датчик, маркеры) => {    const [ { широта, долгота } ] = маркеры;    позволять url = `http://maps.google.com/maps/api/staticmap?center=${ широта },${ долгота }& размер =${ размер }& zoom =${ увеличить }& сенсор =${ датчик }`;    маркеры.для каждого(маркер => url += маркер.addMarker());    возвращаться `${ url }"alt =" Карта "/>`;};

Плотность кода разных языков

Разница в плотность кода между различными компьютерные языки настолько велик, что часто меньше объем памяти необходим для хранения как программы, написанной на "компактном" языке (например, предметно-ориентированный язык программирования, Microsoft P-код, или же многопоточный код ), плюс устный переводчик для этого компактного языка (написанного в собственном коде), чем для хранения этой программы, написанной непосредственно на собственный код.

Уменьшение вздутия живота

Вот некоторые методы уменьшения раздувания кода:[1]

  • Рефакторинг кода часто используемую кодовую последовательность в подпрограмма, и вызывает эту подпрограмму из нескольких мест, а не копировать и вставлять код в каждом из этих мест.
  • Повторное использование уже написанных подпрограмм (возможно, с дополнительными параметрами) вместо их повторной записи с нуля в качестве новой процедуры.

Смотрите также

Рекомендации

  1. ^ "Раздутие кода". DocForge. Получено 30 декабря 2009.