В компьютерном программировании , код раздуваться является производство программного кода ( исходный код или машинный код ) , который воспринимается как излишне долго, медленно или иначе расточительством ресурсов. Раздутый код может быть вызван несоответствиями в языке программирования, на котором написан код, компилятором, который использовался для его компиляции, или программистом, который его пишет. Таким образом, хотя раздувание кода обычно относится к размеру исходного кода (созданному программистом), его можно использовать вместо этого для ссылки на размер сгенерированного кода или даже размер двоичного файла .
Примеры
Следующий алгоритм JavaScript имеет большое количество избыточных переменных, ненужную логику и неэффективную конкатенацию строк.
// Сложная функция TK2getImageHTML ( размер , масштаб , датчик , маркеры ) { var strFinalImage = "" ; var strHTMLStart = '; var strHTMLEnd = '" alt = "Карта" />' ; var strURL = "http://maps.google.com/maps/api/staticmap?center=" ; var strSize = '& size =' + размер ; var strZoom = '& zoom =' + масштабирование ; вар strSensor = '& сенсор =' + сенсор ; strURL + = маркеры [ 0 ]. широта ; strURL + = "," ; strURL + = маркеры [ 0 ]. долгота ; strURL + = strSize ; strURL + = strZoom ; strURL + = strSensor ; for ( var i = 0 ; i < markers . length ; i ++ ) { strURL + = markers [ i ]. addMarker (); } strFinalImage = strHTMLStart + strURL + strHTMLEnd ; return strFinalImage ; };
Эту же логику можно более эффективно сформулировать следующим образом:
// Упрощенная const TK2getImageHTML = ( размер , масштаб , датчик , маркеры ) => { const [ { широта , долгота } ] = маркеры ; let url = `http://maps.google.com/maps/api/staticmap?center= $ { latitude } , $ { longitude } & size = $ { size } & zoom = $ { zoom } & sensor = $ { sensor } ` ; маркеры . forEach ( маркер => url + = маркер . addMarker ()); return `$ { url } "alt =" Карта "/>` ; };
Плотность кода разных языков
Разница в плотности кода между разными компьютерными языками настолько велика, что часто требуется меньше памяти для хранения как программы, написанной на «компактном» языке (например, предметно-ориентированном языке программирования , Microsoft P-Code или многопоточном коде ), плюс интерпретатор для этого компактного языка (написанный в машинном коде), чем для хранения этой программы, написанной непосредственно в машинном коде .
Уменьшение вздутия живота
Вот некоторые методы уменьшения раздувания кода: [1]
- Реорганизация кода обычно используемой кодовой последовательности в подпрограмму и вызов этой подпрограммы из нескольких мест, а не копирование и вставка кода в каждое из этих мест.
- Повторное использование уже написанных подпрограмм (возможно, с дополнительными параметрами) вместо их повторной записи с нуля в качестве новой процедуры.
Смотрите также
Рекомендации
- ^ "Раздутие кода" . DocForge . Проверено 30 декабря 2009 года . CS1 maint: обескураженный параметр ( ссылка )