Redundante code, of overbodige code, is overbodige broncode in een computerprogramma die wel uitgevoerd wordt maar geen of weinig invloed heeft op de uitvoer ervan. Redundante code is ongewenst omdat hij leidt tot verspilling van schijf- en werkgeheugen, uitvoeringstijd en van onderhoudstijd. Bovendien vergroot overbodige code, net als alle code, de kans op fouten in het computerprogramma. De compiler van het computerprogramma kan tijdens de compilatie redundante code overslaan in een optimalisatieslag (dead code stripping of dead code elimination). Toch is verwijderen van redundante code vanwege de kosten zelden een prioriteit, behalve in speciale toepassingen.[bron?]

Voorbeelden

bewerken
<?php
$foo = "Deze variabele wordt gebruikt.";
$bar = "Deze variabele is redundant.";

echo $foo;
?>

De tweede variabele $bar is redundant aangezien hij wel gedeclareerd is (er is werkgeheugen voor gereserveerd) is maar toch niet gebruikt wordt.

<?php
$sql 		= "SELECT * FROM reacties WHERE datum BETWEEN CURDATE() AND (CURDATE() - INTERVAL 1 DAY)";
$resultaat 	= mysql_query($sql); 
?>

Deze code is redundant omdat er wel reacties opgehaald worden vanuit de database, maar met het resultaat $resultaat vervolgens niets gedaan wordt.

Ontstaan van redundante code

bewerken

Er zijn verscheidene redenen waarom de broncode van een computerprogramma redundante code bevat.

  1. test: tijdens de ontwikkeling van software kunnen de ontwikkelaars tijdelijk stukken code invoegen om iets te testen: er wordt bijvoorbeeld een functie gedeclareerd die controleert of een bepaald stuk code het gewenste resultaat geeft.
  2. oude code: redundante code is vaak een overblijfsel van oude code, die - eventueel in uitgeschakelde vorm - achtergebleven is na een wijziging, net als in gewone leesteksten met restanten. Door tijdnood en behoefte oude versies paraat te houden blijft oude code staan.
  3. nieuwe code: ook is het mogelijk dat de programmeur al aan een nieuwe functie is begonnen die al wel code heeft, maar nog niet nuttig is. Bijvoorbeeld een stuk code dat de gebruiker van een forum meteen de laatste reacties laat zien.
  4. afhankelijk van de ontwikkelaar en het bedrijf waar deze voor werkt ligt de prioriteit op werkende code in plaats van nette werkende code. In dat geval zal ongebruikte code in een project blijven staan omdat het toch al werkt. In het andere geval wordt alle code meerdere keren gerefactored om alle redundante code weg te halen.

Zie ook

bewerken