Codeblokken

leestijd: 7 minuten

functie selectie iteratie

Codeblokken

Een codeblok is een lijst met instructies dat begint en eindigt met een bepaald teken. Het begin en einde van een codeblok wordt aangeduid met accolades.

Er bestaan verschillende soorten codeblokken, die elk in hun eigen hoofdstuk wordt besproken.

Een codeblok ziet er bijvoorbeeld zo uit:

{
	// instructies
	// instructies
}
{
	// instructies
	// instructies
}
{
	// instructies
	// instructies
}

Nesten

Het nesten van codeblokken wilt zeggen dat een codeblok in een ander codeblok staat.

codeblokken

Indentatie

Indentatie is de hoeveelheid inspringing (spaties of tabs) voor elke lijn code. Het is een manier om gemakkelijk te zien wie de parent, children en siblings zijn van een codeblok.

Hieronder staat twee maal dezelfde code geschreven. Links staat het voorbeeld met indentatie. Rechts staat hetzelfde voorbeeld, maar zonder indentatie.

zonder indentatie:

{ // blok 1
// instructies			
// instructies

{ // blok 2
// instructies
// instructies
}

{ // blok 3
// instructies
// instructies
}
}
{ // blok 1
// instructies			
// instructies

{ // blok 2
// instructies
// instructies
}

{ // blok 3
// instructies
// instructies
}
}
{ // blok 1
// instructies			
// instructies

{ // blok 2
// instructies
// instructies
}

{ // blok 3
// instructies
// instructies
}
}

met indentatie:

{ // blok 1
	// instructies
	// instructies

	{ // blok 2
		// instructies
		// instructies
	}

	{ // blok 3
		// instructies
		// instructies		
	}
}
{ // blok 1
	// instructies
	// instructies

	{ // blok 2
		// instructies
		// instructies
	}

	{ // blok 3
		// instructies
		// instructies		
	}
}
{ // blok 1
	// instructies
	// instructies

	{ // blok 2
		// instructies
		// instructies
	}

	{ // blok 3
		// instructies
		// instructies		
	}
}

In het linkse voorbeeld kan je heel duidelijk zien welke de children zijn van Blok 1. In het rechtse voorbeeld is dit veel moeilijker. Bij indentatie worden de volgende regels gevolgd:

Scope

De scope van een stuk code laat zien op welke plaatsen in de programma-code je instructies bereikbaar zijn.Hiervoor gebruiken de meeste programmeertalen dezelfde regels:

{ // parent blok
	var inParent = "groen";		// scope is de parent en beide children
	
	{ // child 1 blok
		var inChild1 = "blauw";	// scope is enkel child blok 1
	}

	{ // child 2 blok
		var inChild2 = "rood";	// scope is enkel child blok 2
	}
}
{ // parent blok
	$inParent = "groen";		// scope is de parent en beide children
	
	{ // child 1 blok
		$inChild1 = "blauw";	// scope is enkel child blok 1
	}

	{ // child 2 blok
		$inChild2 = "rood";	// scope is enkel child blok 2
	}
}
{ // parent blok
	string inParent = "groen";		// scope is de parent en beide children
	
	{ // child 1 blok
		string inChild1 = "blauw";	// scope is enkel child blok 1
	}

	{ // child 2 blok
		string inChild2 = "rood";	// scope is enkel child blok 2
	}
}

DRY

In programmeren zijn er bepaalde principes waar programmeurs zich graag aan houden. Eén van die principes heet

DRY

Don't Repeat Yourself

Dit wil zeggen: probeer jezelf niet keer op keer te herhalen in je code.

Waarom is dit principe zo belangrijk? Stel je voor dat we een codeblok hebben om een explosie te maken. Het codeblok zou er waarschijnlijk als volgt uitzien:

// codeblok voor explosie:
{
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie
}

In een spel zijn er verschillende dingen die kunnen exploderen: wanneer een auto of granaat ontploft, moet in beide gevallen het explosie-codeblok worden uitgevoerd. Zowel de auto als de granaat krijgen dus hetzelfde explosie-codeblok:

AUTO:

// explosie instructies:
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie

	
GRANAAT:

// explosie instructies:
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie
AUTO:

// explosie instructies:
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie

	
GRANAAT:

// explosie instructies:
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie
AUTO:

// explosie instructies:
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie

	
GRANAAT:

// explosie instructies:
	// maak een geluidje
	// laat een licht rood/oranje flikkeren
	// doe 10 schade
	// aan alle spelers binnen 5 meter van de explosie

Als er nu een kleine aanpassing gemaakt moet worden in de explosie-code (bijvoorbeeld om een rook-effect toevoegen) moet die aanpassing in al die explosie-codeblokken worden gedaan.

Dit allemaal omdat al die objecten zelf hun eigen explosie-codeblok hebben.

Door het DRY principe correct te gebruiken, zou het explosie-codeblok slechts op één plaats staan. Zo moet je ook maar op één plaats een aanpassing maken. Dit is uiteraard veel gemakkelijker, en je kan niet meer vergeten om je rook-effectje voor één of twee objecten toe te voegen.