Раздувание кода
Эта статья нуждается в дополнительных ссылок для проверки . ( июнь 2014 г. ) |
В компьютерном программировании раздувание кода — это создание программного кода ( исходного или машинного кода ), который воспринимается как излишне длинный, медленный или иным образом расточительный по ресурсам. Раздувание кода может быть вызвано несовершенством языка программирования , на котором написан код, компилятора , использованного для его компиляции, или программиста, написавшего его. Таким образом, хотя раздувание кода обычно относится к размеру исходного кода (созданному программистом), вместо этого его можно использовать для обозначения размера сгенерированного кода или даже размера двоичного файла .
Примеры [ править ]
Следующий алгоритм JavaScript имеет большое количество избыточных переменных, ненужную логику и неэффективную конкатенацию строк.
// Сложная
функция TK2getImageHTML ( размер , масштаб , сенсор , маркеры ) {
var strFinalImage = "" ;
var strHTMLStart = '<img src="' ;
var strHTMLEnd = '" alt="Карта"/>' ;
var strURL = "http://maps.google.com/maps/api/staticmap?center=" ;
var strSize = '&size=' + размер ;
var strZoom = '&zoom=' + масштабирование ;
var strSensor = '&sensor=' + датчик ;
strURL += маркеры [ 0 ]. широта ;
стрURL += "," ;
strURL += маркеры [ 0 ]. долгота ;
стрURL += стрSize ;
стрURL += стрZoom ;
стрURL += стрсенсор ;
for ( var i = 0 ; я < маркеры . длина ; я ++ ) {
strURL += маркеры [ я ]. добавитьМаркер ();
}
StrFinalImage = strHTMLStart + strURL + strHTMLEnd ;
вернуть стрфиналимаже ;
};
Ту же логику можно более эффективно сформулировать следующим образом:
// Упрощенная
const TK2getImageHTML = ( размер , масштаб , датчик , маркеры ) => {
const [ { широта , долгота } ] = маркеры ;
let url = `http://maps.google.com/maps/api/staticmap?center= ${ широта } , ${ долгота } &size= ${ размер } &zoom= ${ масштабирование } &sensor= ${ датчик } ` ;
маркеры . forEach ( маркер => URL += маркер . addMarker ());
return `<img src=" ${ url } " alt="Карта" />` ;
};
Плотность кода разных языков [ править ]
Разница в плотности кода между различными компьютерными языками настолько велика, что часто требуется меньше памяти для хранения программы, написанной на «компактном» языке (например, предметно-ориентированном языке программирования , Microsoft P-Code или многопоточном коде ), плюс интерпретатор этого компактного языка (написанного на собственном коде), чем хранить эту программу, написанную непосредственно на собственном коде .
Уменьшение раздувания [ править ]
Некоторые методы уменьшения раздувания кода включают в себя: [1]
- Рефакторинг кода часто используемой последовательности кода в подпрограмму и вызов этой подпрограммы из нескольких мест вместо копирования и вставки кода в каждом из этих мест ( программирование копирования и вставки ).
- Повторное использование уже написанных подпрограмм (возможно, с дополнительными параметрами) вместо того, чтобы переписывать их заново как новую подпрограмму.
- Объедините анализ программы для обнаружения раздутого кода с преобразованием программы для удаления раздутого кода.
См. также [ править ]
- Удаление мертвого кода
- Минимализм (компьютерный)
- Мунцинг
- Полиморфизм (информатика)
- Оптимизация программного обеспечения
- Раздувание программного обеспечения
- Легкое программное обеспечение
Ссылки [ править ]
- ^ «Раздувание кода» . ДокФордж . Архивировано из оригинала 5 марта 2016 года . Проверено 30 декабря 2009 г.