Kasutaja:Vollifred/Treppimine

Allikas: Vikipeedia
Jump to navigation Jump to search

Treppimine programmeerimises on koodiblokkide ees taande kasutamine programmi struktuuri edastamiseks. Olenevalt programmeerimiskeelest võib treppimine olla kas vajalik või lihtsalt soovituslik paremaks loetavuseks. Keeled nagu Python või occam kasutavad treppimist, et väljendada programmi struktuuri ja taanded omavad tähendust koodi kompileerumisel. Enamiku keelte jaoks pole aga taande kasutamine otseselt tähendusrikas.

Sulgude paiknemine koodiblokis[muuda | muuda lähteteksti]

Erinevad taande stiilid erinevad üksteisest enamasti sulgude ({...}) kasutamise pooltest, mis järgnevad tihti kas mingile tingimusele või tsüklile (if, while, for...). Allolev tabel näitab erinevaid taande stiile. Sulgude paiknemise stiil koodiblokis võib erineda sulgude paiknemisest funktsiooni definitsioonis. Selguse mõttes kasutame 4 tühiku sügavust taanet iga stiili jaoks, olenemata eri stiilide eelistatud taandest.

Sulgude paiknemine Stiili nimetus
while (x == y) {
    midagi();
    midagi_muud();
}
K&R ja selle variandid:
1TBS, Stroustrup, Linux kernel, BSD KNF
while (x == y)
{
    midagi();
    midagi_muud();
}
Allman
while (x == y)
  {
    midagi();
    midagi_muud();
  }
GNU
while (x == y)
    {
    midagi();
    midagi_muud();
    }
Whitesmiths
while (x == y)
{   midagi();
    midagi_muud();
}
Horstmann
while (x == y)
{   midagi();
    midagi_muud(); }
Pico
while (x == y) {
    midagi();
    midagi_muud();
    }
Ratliff
while (x == y) {
    midagi();
    midagi_muud(); }
Lisp

Tabulaatorid, tühikud ja taanete sügavused[muuda | muuda lähteteksti]

Paljud varased programmid kasutasid tabeldusmärki taande ja lihtsuse jaoks ning et salvestada algse failisuurusega. Unixi programmeerijad vaatavad üldiselt taanet kui kaheksat tühikumärki. Macintoshi ja Microsofti platvormil kasutatakse pigem nelja tühikut. See tekitas varem segadust üleminekul ühelt platvormilt teisele. Modernsed redaktorid saavad määrata suvalisi taande sügavusi ja lisada vajaliku tühikumärkide arvu.

Jäädavalt lisatud tühikute või tabeldusmärkide üle arutatakse programmeerimiskeskkonnas siiani. Mõned programmeerijad väidavad, et tühikute kasutamine tabeldusmärkide asemel suurendab platvormide vahelist porditavust. Teised, nagu näiteks WordPressi kodeerimisstandardite kirjutajad väidavad vastupidist: permanentsed taanded suurendavad porditavust.

Taande suurus on üldiselt stiilist sõltumatu. Aastal 1983 PASCALi näitel tehtud katse leiti, et taande suurus mõjutab suuresti koodi mõistmist. Tulemus näitab, et parima mõistvuse tagab taandena 2-4 tühikumärgi kasutamine.

Tööriistad[muuda | muuda lähteteksti]

On mitmeid arvutiprogramme, mis korrastavad automaatselt treppimist (vastavalt programmi autori eelistustele) ja tabeldusmärgiga seotud tabelduste pikkust. Üks populaarsemaid on programm nimega indent, mis on kaasas mitmete Unixi-suguste operatsioonisüsteemidega.

Emacsis on mitmed käsud, mis lahendavad automaatselt treppimisprobleemid, näiteks vajutades Tab klahvi mingil real. Kasutades M-x taandevahemikku saab korrektselt treppida suurt hulka koodi. Olenevalt töörežiimist oskab Emacs asendada taandeks kasutatud tühikuid vajaliku arvu tabelduste ja tühikutega, mille tulemuseks on minimaalne treppimiseks vajalik tähemärkide arv.

"Elastic tabstops" on treppimise stiil, mis nõuab tuge tekstieditorilt ja tekstiblokid hoitakse automaatselt reastatuna kui ühe rea pikkus tekstis muutub.

Muud kaalutlused[muuda | muuda lähteteksti]

Blokkide järje kaotamine[muuda | muuda lähteteksti]

Vahel on risk, et treppides aetakse segamini taanded blokkide vahel. Selline olukord esineb tihti pikas koodijupis, milles on mitmed avaldised ja tingimused üksteise sees trepitud. Niimoodi pikalt trepitud koodi alla kerides võib kaduda järg, et milline avaldis on millega seotud või mis on mille sisu. Samal ajal võib väga pikal koodil olla ka muid tagajärgi nagu näiteks liialt kõrge keerukus ja seega võiks mõelda kas koodi muutmine võiks aidata.

Programmeerijad kes sõltuvad avanevate sulgude lugemisest võivad sattuda raskusesse treppimisstiilidega nagu näiteks K&R, kus avanev sulg on lahus oma sisust. Vertikaalselt kompaktsed stiilid nagu K&R on sobivamad programmeerijatele kellele meeldib rohkem treppimine, sest sellistes stiilides on blokid lühemad.