Раздувание кода
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2014 г. ) |
В компьютерном программировании раздувание кода — это создание программного кода ( исходного кода или машинного кода ), который воспринимается как излишне длинный, медленный или иным образом расточительный по ресурсам. Раздувание кода может быть вызвано несовершенством языка программирования , на котором написан код, компилятора, использованного для его компиляции, или программиста, написавшего его. Таким образом, хотя раздувание кода обычно относится к размеру исходного кода (который создается программистом), вместо этого его можно использовать для обозначения размера сгенерированного кода или даже размера двоичного файла .
Примеры [ править ]
Следующий алгоритм JavaScript имеет большое количество избыточных переменных, ненужную логику и неэффективную конкатенацию строк.
// 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;
};
Ту же логику можно более эффективно сформулировать следующим образом:
// 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" />`;
};
Плотность кода разных языков [ править ]
Разница в плотности кода между различными компьютерными языками настолько велика, что часто требуется меньше памяти для хранения программы, написанной на «компактном» языке (например, предметно-ориентированном языке программирования , Microsoft P-Code или многопоточном коде ), плюс интерпретатор этого компактного языка (написанного на собственном коде), чем хранить эту программу, написанную непосредственно на собственном коде .
Уменьшение раздувания [ править ]
Некоторые методы уменьшения раздувания кода включают в себя: [1]
- Рефакторинг кода часто используемой последовательности кода в подпрограмму и вызов этой подпрограммы из нескольких мест вместо копирования и вставки кода в каждое из этих мест ( программирование копирования и вставки ).
- Повторное использование уже написанных подпрограмм (возможно, с дополнительными параметрами) вместо того, чтобы переписывать их заново как новую подпрограмму.
- Объедините анализ программы для обнаружения раздутого кода с преобразованием программы для удаления раздутого кода.
См. также [ править ]
- Удаление мертвого кода
- Минимализм (компьютерный)
- Мунцинг
- Полиморфизм (информатика)
- Оптимизация программного обеспечения
- Раздувание программного обеспечения
- Легкое программное обеспечение
Ссылки [ править ]
- ^ «Раздувание кода» . ДокФордж . Архивировано из оригинала 5 марта 2016 года . Проверено 30 декабря 2009 г.