Varför indentera?
För att koden blir mycket mer lättläst då - för en programmerare. I många programmeringsspråk har man tex slingor där koden som står i slingan upprepas ett antal gånger (while, for, ...), eller så händer olika saker beroende på vad någon variabel har för värde (if, case...). Då kan det underlätta att hitta feltänk om tråden är indenterad. Tex i JavaScript (som ju används i webbsidor ibland):
i = 1; //i är 1
while i < 10 // Så länge i < 10 skriv ut i
field.innerText = i;
i = i+1;
Detta genererar en oändlig slinga eftersom det enda som finns i whileslingan är "field.innerText = i" vilket fyller elementet field med:
1111111111111111111111111111111111111111111111111.....
Medan:
i = 1; //i är 1
while i < 10 { // <---- Måsvingen gör att alla rader till } är med i while
field.innerText = i;
i = i+1; //i blir successivt ett större
}
Detta sätter elementet field = 123456789
Om man snabbt tittar på koden är det lättare att se att i = i+1 är felaktigt indenterad (jämfört med vad man tänkt sig) än huruvida de tunna "måsvingarna": {, } står där eller ej. Många editorer som man använder när man kodar, indenterar automatiskt koden, just för att öka läsbarheten för programmeraren.
Jämför följande i ren svenska:
aasah i gammal tråd skrev:
När jag läste min första datakurs lade föreläsaren på en OH med följande text:
Lektorn: Om dig Eriksson, om vilken jag ej kunnat tänka mig något dylikt, har jag, då du, då jag, på grund av iråkad snuva, måst nysa, brast i skratt, fått en högst ofördelaktig tanke.
Efter lite diskussion kring läsbarheten, avtäcktes OH:ns nedre del:
Indentering kan vara klargörande även i icke programmeringssammanhang: Lektorn:
Om dig Eriksson,
om vilken jag ej kunnat tänka mig något dylikt,
har jag,
då du,
då jag,
på grund av iråkad snuva,
måst nysa,
brast i skratt,
fått en högst ofördelaktig tanke.
:e
Varför inte indentera på webben?
Jo, koden blir ju mer lättläst... och är synlig för alla med "Visa källa". Om man nu har åstadkommit en kod efter månaders jobb vill man kanske inte (speciellt som professionell kodare?) att andra ska kunna kopiera koden utan ett h-s jobb. Och om man tar bort indenteringen, kan det lätt bli svåröverskådligt till tusen, speciellt längre kodstycken.
Sedan finns det en del program som automatiskt genererar HTML/XHTML/XML kod och de lägger med fördel all genererad kod i en enda lång - totalt oläslig - rad.
Ett annat skäl kan vara att den HTML/XHTML/XML som du hittar i källan inte är direkt skriven exakt så av kodaren. Den kanske är framtagen mha ett serversidesskript tex. Och då blir det lätt så, att serversidans kod blir snyggt indenterad, men eftersom den HTML/XHTML/XML som skickas till sidan bara är en textsträng på serversidan, så bryr man sig inte om att försöka indentera dess innehåll. Jämför: (Kod i PHP, echo skriver ut till sidan)
echo "<table><tr><th>Namn</th><th>Registreringsdatum</th></tr>";
while $i < 10 {
echo "<tr><td>$namn_$i</th><th>$registreringsdatum_$i</th></tr>";
$i = $i+1;
}
echo "</table>";
Vilket i "Visa källa" ger resultatet (tex):
Visa källa skrev:
<table><tr><th>Namn</th><th>Registreringsdatum</th></tr><tr><td>Anna</th><th>070204</th>....[8 tabellrader till i en lång rad].... <tr><td>Örjan</th><th>080109</th></tr>
Om jag ville ha ut en indenterad tabell i källan skulle jag tvingas skriva något i stil med:
echo "<table><br> <tr><th>Namn</th><th>Registreringsdatum</th></tr><br>";
while $i < 10 {
echo " <tr><td>$namn</th><th>$registreringsdatum</th></tr><br>";
$i = $i+1;
}
echo "</table>";
I detta fall måste jag försöka visuallisera hur HTML-koden kommer att se ut i källan för att räkna ut hur många som ska klämmas in tillsammans med <br> - och var - för att ge en snygg källa. (I princip omöjligt, i lite längre kod.)