Nadęcie kodu
W programowaniu komputerowym rozdęcie kodu to tworzenie kodu programu ( kodu źródłowego lub kodu maszynowego ), który jest postrzegany jako niepotrzebnie długi, powolny lub w inny sposób marnujący zasoby. Rozdęcie kodu może być spowodowane niedoskonałościami języka programowania , w którym napisano kod, kompilatora użytego do jego skompilowania lub programisty, który go napisał. Tak więc, podczas gdy rozdęcie kodu ogólnie odnosi się do rozmiaru kodu źródłowego (wytworzonego przez programistę), można go użyć zamiast tego w odniesieniu do wygenerowanego rozmiaru kodu, a nawet rozmiaru pliku binarnego .
Przykłady
Poniższy algorytm JavaScript ma dużą liczbę zbędnych zmiennych, niepotrzebną logikę i nieefektywne łączenie łańcuchów.
0
0
0
Funkcja złożona TK2getImageHTML ( rozmiar , powiększenie , czujnik , znaczniki ) { var strFinalImage = "" ; var strHTMLStart = '<img src="' ; var strHTMLEnd = '" alt="Mapa"/>' ; var strURL = "http://maps.google.com/maps/api/staticmap?center=" ; var strRozmiar = '&rozmiar=' + rozmiar ; var strZoom = '&zoom=' + zoom ; var strCzujnik = '&czujnik=' + czujnik ; strURL += znaczniki [ ]. szerokość geograficzna ; strURL += "," ; strURL += znaczniki [ ]. długość geograficzna ; strURL += strRozmiar ; strURL += strZoom ; strURL += strCzujnik ; for ( var i = ; i < znaczniki . długość ; i ++ ) { strURL += znaczniki [ i ]. dodajMarker (); } strFinalImage = strHTMLStart + strURL + strHTMLEnd ; powrót strFinalImage ; };
Tę samą logikę można sformułować wydajniej w następujący sposób:
// Uproszczony const TK2getImageHTML = ( rozmiar , powiększenie , czujnik , znaczniki ) => { const [ { szerokość , długość geograficzna } ] = znaczniki ; let url = `http://maps.google.com/maps/api/staticmap?center= ${ szerokość geograficzna } , ${ długość geograficzna } &size= ${ rozmiar } &zoom= ${ zoom } &sensor= ${ czujnik } ` ; znaczniki . forEach ( znacznik => adres URL + = znacznik . addMarker ()); return `<img src=" ${ url } " alt="Mapa" />` ; };
Gęstość kodu w różnych językach
Różnica w gęstości kodu między różnymi językami komputerowymi jest tak duża, że często potrzeba mniej pamięci do przechowywania zarówno programu napisanego w „zwartym” języku (takim jak specyficzny dla domeny język programowania , Microsoft P-Code lub kod wielowątkowy ), plus tłumacz dla tego zwartego języka (napisany w kodzie natywnym), niż przechowywać ten program napisany bezpośrednio w kodzie natywnym .
Zmniejszenie wzdęć
Niektóre techniki zmniejszania rozdęcia kodu obejmują:
- Kod refaktoryzujący powszechnie używaną sekwencję kodu do podprogramu i wywoływanie tego podprogramu z kilku lokalizacji, zamiast kopiowania i wklejania kodu w każdym z tych miejsc ( programowanie kopiuj i wklej ).
- Ponowne wykorzystanie podprogramów, które zostały już napisane (być może z dodatkowymi parametrami), zamiast ponownego pisania ich od nowa jako nowej procedury.
- Połącz analizę programu , aby wykryć rozdęty kod, z transformacją programu , aby usunąć rozdęty kod.